Помощь - Поиск - Пользователи - Календарь
Полная версия: Какими средствами "вытянуть" файл из интернета?
Форум «Всё о Паскале» > 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
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.