Главная страница
    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.017 c
15-1146336501
Tack
2006-04-29 22:48
2006.05.28
Функции перекодирования безопасных URL


2-1147371555
Призрак
2006-05-11 22:19
2006.05.28
Как организовать FIFO-буфер?


8-1134291419
race1
2005-12-11 11:56
2006.05.28
Midi to wav


15-1146332510
Festor:)
2006-04-29 21:41
2006.05.28
Разгон Amd Athlon 64 3000+


2-1147380746
EZHIK
2006-05-12 00:52
2006.05.28
Кнопки назад и вперед и вернуться.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский