Mam taki problem że funkcjia której uzywam do sciagniecia pliku działa ale 1 raz
Nastepny raz gdy sciagam ten sam plik pobiera go z tempa jak to ominac na systemie 98 i 2000
dzieki
Mam taki problem że funkcjia której uzywam do sciagniecia pliku działa ale 1 raz
Nastepny raz gdy sciagam ten sam plik pobiera go z tempa jak to ominac na systemie 98 i 2000
dzieki
Może pochwalisz się tą funkcją, jasnowidzami nie jesteśmy co namalowałeś ;)
procedure TForm.Download(const URL: String; FileName: String);
var
{Bufor zawierający ściągnięty fragment pliku}
Buffer : array[1..1024] of Byte;
hSession, hURL : HINTERNET;
dwRead, dwBufLen, dwIndex, dwSize : DWORD;
F : File;
pBuf : Pointer;
TotalRead : Integer;
begin
hSession := InternetOpen('Fast Download', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
Application.ProcessMessages;
try
{Otwarcie podanego adresu URL}
hURL := InternetOpenURL(hSession, PChar(URL), nil, 0, 0, 0);
Application.ProcessMessages;
dwBufLen := 1024;
dwIndex := 0;
GetMem(pBuf, dwBufLen);
{Pobranie informacji na temat wielkości pliku}
HttpQueryInfo(hURL, HTTP_QUERY_CONTENT_LENGTH, pBuf, dwBufLen, dwIndex);
dwSize := StrToInt(StrPas(pBuf));
ProgressBar.Max := (dwSize div 1024);
FreeMem(pBuf, dwBufLen);
try
AssignFile(F, FileName);
try
Rewrite(F, 1);
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), dwRead);
BlockWrite(F, Buffer, dwRead);
TotalRead := TotalRead + dwRead;
Application.ProcessMessages;
Label_Postep.Caption := 'Pobrano ' + IntToStr(TotalRead div 1024) + ' kB z ' + IntToStr(dwSize div 1024) + ' kB';
ProgressBar.Position := TotalRead div 1024; // 1
until dwRead = 0;
finally
CloseFile(F);
end;
finally
InternetCloseHandle(hSession);
end;
finally
InternetCloseHandle(hURL); // 2
end;
// pobrano...
end;
Kod mam podobny ale kiedy juz raz plik zciagne to następny raz pobiera go z tempa.
Jak spowodować zeby zawsze pobierał plik z internetu a nie z temp?
Moze skorzystaj z indy INDY
Moze i bydziałało ale nie wiem gdzie mam wpisac adres storny internetowej skad ma pobrac plikj?
Chciał bym pobrac plik zeby pokazywało postep pobierania i zeby kazdym razem pobierał go ze strony a nie z tempa
.
nie wpisujesz adresu ftp uzywajac idftp, a pare razy wywolujesz IdFTP1.ChangeDir aby przejsc do wybranego katalogu, a potem pobierasz plik IdFTP1.Get
postep pobierania mozesz uzyskac obslugujac zdarzenie OnWork idFtp