Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.009 c
15-1146493206
kernel
2006-05-01 18:20
2006.05.28
Игра в городки


15-1146754834
fast2
2006-05-04 19:00
2006.05.28
Как установить WIN2003 "с нуля"?


15-1146726042
mfender
2006-05-04 11:00
2006.05.28
Форматирование кода в IDE


15-1146549885
sapsi
2006-05-02 10:04
2006.05.28
Профсоюз работников ИТ


15-1146502420
dyd
2006-05-01 20:53
2006.05.28
Как считать страницу в массив PHP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский