Licznik czasu w autostarcie

0

Witam wszystkich serdecznie.

Aktualnie piszę sobie mały programik, który będzie wrzucony do autostartu i docelowo ma posiadać dwa liczniki. Pierwszy ma mierzyć czas od włączenia komputera, a drugi licznik za każdym odpaleniem programu ma pobierać dane z pliku txt i wrzucić je do zmiennej s1. Po zakończeniu programu ma zapisać aktualną zmienną s1 ponownie do pliku. Nie wiem czy to ma znaczenie, ale troszkę pisałem w Code:Blocks, a aktualnie robię to w Borlandzie i nie rozumiem dlaczego wyskakują mi błędy typu :

  • Multiple declaration for 'plik',
  • Earlier declaration of 'plik',
  • Declaration syntax error.
#include <vcl.h>
#include <fstream.h>
#include <iostream.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

   int s = 0;
   int s1; // s1 - czas całkowity
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

// W TYCH 4 LINIJKACH WYSKAKUJE MI BŁĄD

fstream plik;
plik.open("pamiec.txt");
plik >> s1;
plik.close();

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
   s++;

   // Licznik czasu od włączenia kompa

   int godzin, minut, sekund;
   AnsiString godz, min, sek;

   godzin = s / 3600;
   godz = IntToStr(godzin);
   if(godzin<10) godz="0"+godz;

   minut = (s - godzin * 3600) / 60;
   min = IntToStr(minut);
   if(minut<10) min="0"+min;

   sekund = s - godzin*3600 - minut*60;
   sek = IntToStr(sekund);
   if(sekund<10) sek="0"+sek;

   Label1->Caption = godz+":"+min+":"+sek;

   // Licznik czasu całkowitego

   s1++;

   int godzin1, minut1, sekund1;
   AnsiString godz1, min1, sek1;

   godzin1 = s1 / 3600;
   godz1 = IntToStr(godzin1);
   if(godzin1<10) godz1="0"+godz1;

   minut1 = (s1 - godzin1 * 3600) / 60;
   min1 = IntToStr(minut1);
   if(minut1<10) min1="0"+min1;

   sekund1 = s1 - godzin1*3600 - minut1*60;
   sek1 = IntToStr(sekund1);
   if(sekund1<10) sek1="0"+sek1;

   Label2->Caption = godz1+":"+min1+":"+sek1;

} 

Proszę o wyrozumiałość, gdyż stosunkowo od niedawna uczę się programowania :)

1

Nie można od tak globalnie wykonywać kodu z czapy.

0

Dzięki wielkie ;) Już się zastanawiałem, czy w Borlandzie innych komend się używa. Wrzuciłem do funkcji timer i już pobiera ładnie dane z pliku. Teraz tylko warunek w funkcji timer aby się tylko raz plik otworzył i pozostanie kwestia zapisania zmiennej po skończeniu programu do pliku.
Jeszcze raz dzięki wielki. Chciałem po prostu raz otworzyć plik przed pętlą tak aby tylko dane do zmiennej wrzuciło, ale widać tak się nie dało :)

0

swoja droga do mierzenia czasu od wlaczenia komputera mozesz uzyc GetTickCount

1 użytkowników online, w tym zalogowanych: 0, gości: 1