IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Какими средствами "вытянуть" файл из интернета?, нужно скачать довольно большой файл
BlackNightFear
сообщение 4.08.2005 22:06
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 48
Пол: Мужской

Репутация: -  0  +


Нужно вытянуть некоторый файл из интернета.. размер порядка 2х мб... в принципе файл может и не большой smile.gif но для дайл апа не малый размер, учитывая, что связь может сбрасываться и т.д.

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

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

Что может помочь в данной ситуации? (по фтп доступиться к сайту нет возможности)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.08.2005 23:09
Сообщение #2


Гость






В DRKB есть пример:
Цитата(DRKB)
Пример HTTP Get - загружаем файлы и страницы из Интернета

Качай и читай ;)
 К началу страницы 
+ Ответить 
BlackNightFear
сообщение 5.08.2005 1:38
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 48
Пол: Мужской

Репутация: -  0  +


ого, лихо! smile.gif а попроще никак? smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 5.08.2005 2:17
Сообщение #4


Гость






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
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 3.05.2024 9:08
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"