Ver Mensaje Individual
  #4  
Antiguo 12-02-2004
Descendents Descendents is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 396
Reputación: 24
Descendents Va por buen camino
Haber lo que te ha dado dark dide no es el componente wininet, sino que utiliza wininet para descargar el archivo.Con wininet puedes hacer mas cosas desde FTP, etc... el componente se llama si no recuerdo mal idhttpfile.Pero me parece que si tienes delphi 6 en adelante te dara problemas con designintf y todo el follon este.Pero se puede solventar.

Con esta tienes una manera.


Otra es:
Código:
function Tform1.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;


procedure TForm1.Button1Click(Sender: TObject);
var FileOnNet, LocalFileName: string;
begin
 FileOnNet:='http://www.clubdelphi.com/';
 LocalFileName:='c:\archivo.htm';

 if GetInetFile(FileOnNet,LocalFileName)=True then
  ShowMessage('Descargado Correctamente')
 else
  ShowMessage('Error en la Descarga')
end;
Y una tercera es la que te ha dicho el compañero jachguate con las indy con el componente TidHTTPClient.

Ejemplo.

Código:
procedure TForm1.Button2Click(Sender: TObject);
var
  stream: Tfilestream;
begin
  stream:= TFileStream.Create('c:\archivo.htm',fmCreate);
  try
    idhttp1.Get('http://www.clubdelphi.com/',stream);
  except
    stream.Free;
    ShowMessage('Error en la Descarga');
    exit;
  end;
  stream.Free;
  ShowMessage('Descargado Correctamente')
end;
Las uses que necesites en cada caso no te las se decir ahora porque no me acuerdo.

Pero pueden ser las de las indy en su caso y wininet en los otros

Saludos y Suerte
__________________
La victoria tiene cien padres. La derrota es huérfana (Napoleón).
Responder Con Cita