Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.28;
Скачать: CL | DM;

Вниз

Скачать файл с интернета   Найти похожие ветки 

 
Spose ©   (2006-01-28 08:19) [0]

Необходимо любым доступным образом (только не в ручную) скачать файл с интернета по указанной ссылке.


 
Yegorchic ©   (2006-01-28 12:00) [1]

uses wininet;

...

function DownloadFile(const Url: string): string;
var
 NetHandle: HINTERNET;
 UrlHandle: HINTERNET;
 Buffer: array[0..1024] of char;
 BytesRead: cardinal;
begin
 Result := "";
 NetHandle := InternetOpen("Delphi 5.x", INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);

 if Assigned(NetHandle) then
   begin

     UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);

     if Assigned(UrlHandle) then
{ UrlHandle правильный? Начинаем загрузку }
       begin
         FillChar(Buffer, SizeOf(Buffer), 0);
         repeat
           Result := Result + Buffer;
           FillChar(Buffer, SizeOf(Buffer), 0);
           InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
         until BytesRead = 0;
         InternetCloseHandle(UrlHandle);
       end
     else
       begin
{ UrlHandle неправильный. Генерируем исключительную ситуацию. }
         raise Exception.CreateFmt("Cannot open URL %s", [Url]);
       end;

     InternetCloseHandle(NetHandle);
   end
 else
{ NetHandle недопустимый. Генерируем исключительную ситуацию }
   raise Exception.Create("Unable to initialize Wininet");
end;

Вот. Только на время закачки, программе как бы "повиснет".


 
VirEx ©   (2006-01-28 13:38) [2]


> Вот. Только на время закачки, программе как бы "повиснет".

поэтому эту функцию надо запускать в отдельном потоке


 
VirEx ©   (2006-01-28 13:41) [3]

или в конструкцию
repeat
...
until BytesRead = 0;
воткнуть application.processmessages



Страницы: 1 вся ветка

Текущий архив: 2006.05.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.058 c
2-1147271681
Adios
2006-05-10 18:34
2006.05.28
Как вычесть из строки?


1-1145630809
Sam Stone
2006-04-21 18:46
2006.05.28
Задача оптимального раскроя


1-1145449466
partizan
2006-04-19 16:24
2006.05.28
Событие onBeforeNavigate2 компонента TWebBrowser


2-1147323581
shadow86
2006-05-11 08:59
2006.05.28
Временная задержка при выполнении программы


10-1120133263
pronchik
2005-06-30 16:07
2006.05.28
ссылка в WebBrowser