Главная страница
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.024 c
2-1147260862
daimyo
2006-05-10 15:34
2006.05.28
DBMS_SQL


11-1127210520
Linec
2005-09-20 14:02
2006.05.28
Невозможно сделать повторное создание формы.


3-1144132053
RomanH
2006-04-04 10:27
2006.05.28
Автоинкремент в MSSQL


15-1146103050
3DNow!
2006-04-27 05:57
2006.05.28
Что можно почитать про 3DNow! ?


2-1147445279
SummerSwan
2006-05-12 18:47
2006.05.28
TFileStream