Помощь - Поиск - Пользователи - Календарь
Полная версия: Какими средствами "вытянуть" файл из интернета?
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
BlackNightFear
Нужно вытянуть некоторый файл из интернета.. размер порядка 2х мб... в принципе файл может и не большой smile.gif но для дайл апа не малый размер, учитывая, что связь может сбрасываться и т.д.

Какими средствами при МИНИМАЛЬНОМ объеме программы (экзэшника) вытягивать этот файл? (файл не текстовой прийдется вытягивать как-то через бинарное открытие чтоль)

как этот процесс можно организовать? в какую сторону смотреть? напрямую ведь не прочитаешь файл открыв его как файл http://test.site/file.rar

Что может помочь в данной ситуации? (по фтп доступиться к сайту нет возможности)
volvo
В DRKB есть пример:
Цитата(DRKB)
Пример HTTP Get - загружаем файлы и страницы из Интернета

Качай и читай ;)
BlackNightFear
ого, лихо! smile.gif а попроще никак? smile.gif
volvo
program i_n;

{$APPTYPE CONSOLE}

uses
SysUtils, winInet;

procedure DownloadFile(const url: string; const savefile : String);
var
NetHandle : HINTERNET;
UrlHandle : HINTERNET;
Buffer : packed array [0..1023] of byte;
BytesRead : Cardinal;
f : file;
begin
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
begin
AssignFile (f, savefile);
ReWrite (f, 1);
InternetReadFile (UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
while BytesRead <> 0 do
begin
BlockWrite (f, Buffer, BytesRead);
InternetReadFile (UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
end;
InternetCloseHandle(UrlHandle);
CloseFile (f);
end
else
begin
raise Exception.CreateFmt ('Cannot open URL %s', [Url]);
end;
InternetCloseHandle(NetHandle);
end
else
raise Exception.Create ('Unable to initialize Wininet');
end;

begin
DownloadFile('http://volvo1971.nm.ru/pics/gist_2.png', 'C:\gist_2.png');
end.

Так достаточно просто? smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.