Pobieranie niekompletnego pliku

0

Witam... Napisałem procedurę pobierającą plik z internetu:

rozmiar:=(IdHTTP.Response.ContentLength);
  mainform.progressbar1.Max:=rozmiar;

  repeat
  application.ProcessMessages;
    if bufor>rozmiar-pobrane
     then
      begin
        idhttp.Request.Range:=inttostr(pobrane)+'-'+inttostr(rozmiar);
        Ffile.seek(pobrane,sofrombeginning);
        idhttp.Get(dwnlink,Ffile);
        mainform.Label1.Caption:=inttostr(((mainform.ProgressBar1.Position)*100)div rozmiar);
        mainform.lblSizeDWN.caption:=inttostr((pobrane div 1024))+' KB / '+inttostr((rozmiar div 1024))+' KB';
        mainform.ProgressBar1.Position:=rozmiar;
        ostatnipostep:=0;
        pobrane:=rozmiar;
        mainform.progressbar1.Position:=rozmiar;

      end
     else                                       
      begin

        idhttp.Request.Range:=inttostr(pobrane)+'-'+inttostr(pobrane+bufor);
        Ffile.seek(pobrane,sofrombeginning);
        idhttp.Get(dwnlink,Ffile);
        pobrane:=pobrane+bufor;
        mainform.Label1.Caption:=inttostr(((mainform.ProgressBar1.Position)*100)div rozmiar);
        mainform.lblSizeDWN.caption:=inttostr((pobrane div 1024))+' KB / '+inttostr((rozmiar div 1024))+' KB';
        mainform.progressbar1.Position:=pobrane;
        mainform.Label1.caption:= inttostr((pobrane*100) div rozmiar)+'%';
        mainform.progressbar1.Position:=pobrane;

Plik pobiera się, wszystkie statystyki prawidłowo działają, ale plik (np archiwum) nie chce się otworzyć lub jest uszkodzone... Gdzie może być błąd. Może pobiera się zły rozmiar pliku... Proszę o pomoc. Pozdrawiam

0

rozmiar:=(IdHTTP.Response.ContentLength);

rozmiar jest prawidłowy. Sprawdzałem z różnymi plikami.
To znaczy, że coś jest nie tak trochę dalej.
W przypadku pliku ważącego 9,365 KB plik pobrany moim programem ma 9,374KB.

Poprawiłem jeszcze

if bufor>rozmiar-pobrane

na:

if bufor>=rozmiar-pobrane

Pozdrawiam

0

czyli program pobiera cos wiecej niz powinien jakas stopke adres. Przesledz pliki w jakim hex edytorze i zobacz czym sie roznia jak zrobisz to na malych plikach bedziesz mogl szybciej wylapac rozniece jesli to jest poczatek albo koniec pliku i zawsze jest tak samo przeklamamy wystarczy to odciac.

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