Socket- postęp w przesyłaniu pliku

0

Mam problem, stworzyłem aplikację do przesyłania plików w sieci LAN (TServerSocket i TClientSocket). Plik się przesyła poprawanie, lecz nie mogę mogę obliczyć np. w jakim stopniu plik został już przesłany??

TFileStream *F;

void __fastcall TForm1::SerwerClientRead(TObject *Sender, TCustomWinSocket *Socket)
{
...
Odczytane=Socket->ReceiveBuf(buf , sizeof(buf)) ;
Status->Caption= "Odbieram plik, postęp: " + FormatFloat("0.00" , (F->Position / RozmiarPliku) * 100) + "%" ;
MessageBox(0,(IntToStr(F->Position)+" "+IntToStr(RozmiarPliku)).c_str(),"x",0); //mój test
F->Write(buf , Odczytane);
...
}

Po wielu nieudanych próbach zrobiłem teścik z MessageBox co wykazało, że F->Position zawsze równa się zero! Udało mi się dojść do tego, że F->Position zwraca wartość __int64, więc tutaj pewnie leży problem, ale nie mogę sobie poradzić...

Z góry dziękuję za pomoc

0

To spróbuj nie polegać na F->Position a sumuj Odczytane do jakiejś globalnej zmiennej

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