Русская документация для фриланесеров
Главная arrow Delphi arrow Качаем файл из Internet  
08.01.2009 г.
Главное меню
Главная
Поиск
PHP
.NET
Java
Ruby
C++
Delphi
Другие языки
Базы данных
Безопасность
Сети
ОС
Мобильные
Теория дизайна
WEB
Разное
Админцентр



! Построить бассейн строительство оборудование для бассейнов всесезонный бассейн!

Качаем файл из Internet Печать E-mail
Автор Westry   
25.12.2007 г.
Если ваша программа содержит подключаемые модули (BPL или DLL) или есть необходимость обновлять саму программу, то наверняка стояла проблема обновления копий программы. С развитием Internet появилась прекрасная возможность сделать это быстро и красиво. В данной статье мы расскажем, как добавить опцию автообновления программ из Internet.

 Delphi дает нам полный доступ к API WinInet (wininet.pas), что позволяет подключиться и скачать любой файл с указанного вебсайта, используя протоколы FTP или HTTP. Например, мы можем использовать функции API WinInet для создания FTP-браузера или программы для поиска на публичных FTP-серверах заданных файлов.
Основная функция нашей программы - GetInetFile:


uses Wininet;

function GetInetFile(const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
Result:=False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG,
nil, nil, 0);
try
hURL := InternetOpenURL(hSession,
PChar(fileURL),nil,0,0,0);
try
AssignFile(f, FileName);
Rewrite(f,1);
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen)
until BufferLen = 0;
CloseFile(f);
Result:=True;
finally
InternetCloseHandle(hURL)
end
finally
InternetCloseHandle(hSession)
end
end;


Замечание: конечно, этот пример нужно расширить, вставив, например, код для отображения прогресса скачивания в цикл.
Использовать функцию GetInetFile очень просто:


var FileOnNet, LocalFileName: string
begin
FileOnNet:=′http://www.codenet.ru/progr/delphi/′;
LocalFileName:=′MyFile.zip′;

if GetInetFile(FileOnNet,LocalFileName)=True then
ShowMessage(′Download successful′)
else
ShowMessage(′Error in file download′)

end;


Этот кусок кода скачивает файл с именем mp3player.zip, находящийся по адресу ′http://www.codenet.ru/progr/delphi/′ и записывает его в текущий каталог под именем ′MyFile.zip′. Все очень просто.

 

 

Источник: http://www.codenet.ru

 
« Пред.   След. »
Webdesign by Webmedie.dk Webdesign by Webmedie.dk