Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Скачать файл с интернета [D7]


Spose ©   (2006-01-28 08:19:00) 

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


VirEx   (2006-01-28 13:41:00) [1]

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


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


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

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


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

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;

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо