Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > неполучается скачать файл!!!


Автор: ne0n 16.3.2007, 16:49
Взял пример из FAQ:
Код

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;


Результат работы функции возращает строковое значени, чето я не пойму, а что мне делать если надо скачать там exe или rar

Автор: Snowy 16.3.2007, 17:21
Если там exe, то у тебя в строке будет exe.
В чём проблема? Сохранить это в файл?
Код

var
  fs: TFileStream;
  s:  string;
begin
  s := получаем результат функции;
  fs := TFileStream.Create('C:\1.exe', fmCreate);
  fs.Write(s[1], Length(s));
  fs.Free;
end;

Автор: ne0n 16.3.2007, 17:29
Ну я так и думал, только мне нельзя использовать TFileStream! Можно обойтись через WinApi?
Пробовал вот так, тока  не работает:
Код



S:=DownloadFile('http://someurl/arc.rar');
 AssignFile(FileToSave,'C:\1.rar');
 Rewrite(fileToSave);
 Writeln(filetosave,s);
 CloseFile(FileToSAve);



Работал как с TextFile

Автор: Snowy 16.3.2007, 17:33
http://forum.vingrad.ru/index.php?showtopic=91700&view=findpost&p=702016

Добавлено @ 17:34 
Процедура принимает URL и имя файла, куда сохранить.

Автор: ne0n 16.3.2007, 17:39
 smile  smile  smile Спасиба, как раз точто нужно!!!! smile  Очень благодарен!!!!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)