Hola
Quiero bajar un fichero de internet con mi aplicación desde consola en delphi
Estoy tratando de que funcione este procedimiento que he sacado de esta página:
(No se si es spam poner la dirección, por eso le pongo espacios ...)
http: // www . scalabium . com/faq/dct0116.htm
----------------------------------------------------
procedure DownloadFile(strHost, strRemoteFileName, strLocalFileName:
string;
ClientSocket: TClientSocket);
var
intReturnCode: Integer;
s:
string;
szBuffer:
array[0..128]
of Char;
FileOut: TFileStream;
begin
if strRemoteFileName[1] <>
'/' then
strRemoteFileName :=
'/' + strRemoteFileName;
FileOut := TFileStream.Create(strLocalFileName, fmCreate);
try
with ClientSocket
do
begin
Host := strHost;
ClientType := ctBlocking;
Port := 80;
try
Open;
{send query}
s :=
'GET ' + strRemoteFileName +
' HTTP/1.0'#13#10 +
'Host: ' + strHost +
#13#10#13#10;
intReturnCode := Socket.SendBuf(Pointer(s)^, Length(s));
if intReturnCode > 0
then
begin
{receive the answer}
{ iterate until no more data }
while (intReturnCode > 0)
do
begin
{ clear buffer before each iteration }
FillChar(szBuffer, SizeOf(szBuffer), 0);
{ try to receive some data }
intReturnCode := Socket.ReceiveBuf(szBuffer, SizeOf(szBuffer));
{ if received a some data, then add this data to the result string }
if intReturnCode > 0
then
FileOut.Write(szBuffer, intReturnCode);
end
end
else
MessageDlg(
'No answer from server', mtError, [mbOk], 0);
Close;
except
MessageDlg(
'No connection', mtError, [mbOk], 0);
end;
end;
finally
FileOut.Free
end;
end;
To execute this procedure:
procedure TForm1.Button1Click(Sender: TObject);
begin
DownloadFile(
'URL Internet',
'/forums.htm',
'd:\forums.htm', ClientSocket1);
end;
PS: the last parameter is ClientSocket component which you must drop on form from component pallete or create in run-time.
----------------------------------------------
No tengo ni puñetera idea de como puedo crear el clientsocket en tiempo real, teniendo en cuenta que mi aplicación es sobre consola.
Alguien podría darme un ejemplo? Llevo sólo 7 dias con delphi y ando mas perdido que un berebere en el polo norte.