Главная страница
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.032 c
15-1146715840
Fin
2006-05-04 08:10
2006.05.28
Доступ в две сети с одной машины!


1-1145231424
vagra
2006-04-17 03:50
2006.05.28
Визуальный редактор форм


2-1146837440
Dr. Genius
2006-05-05 17:57
2006.05.28
Поиск строк в Pas-модуле Delphi


2-1147336472
kyn66
2006-05-11 12:34
2006.05.28
Запутался в запросе


15-1146055921
Nic
2006-04-26 16:52
2006.05.28
Что для России означает снижение курса доллара?