Inhalt einer HTML-Datei aus dem Internet downloaden |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
Folgende Routine lädt mit Boardmitteln eine HTML-Datei über das HTTP-Protokoll und gibt den Inhalt als Result zurück:
uses WinInet;
Function GetHTML(AUrl: string): string;
var
databuffer : array[0..4095] of char;
ResStr : string;
hSession, hfile: hInternet;
dwindex,dwcodelen,dwread,dwNumber: cardinal;
dwcode : array[1..20] of char;
res : pchar;
Str : pchar;
begin
ResStr:='';
Result:='';
if pos('http://',lowercase(AUrl))=0 then
AUrl:='http://'+AUrl;
hSession:=InternetOpen('InetURL:/1.0',
INTERNET_OPEN_TYPE_PRECONFIG,
nil,
nil,
0);
If assigned(hSession) Then Try
hfile:=InternetOpenUrl(
hsession,
pchar(AUrl),
nil,
0,
INTERNET_FLAG_RELOAD,
0);
if assigned(hfile) then Try
dwIndex := 0;
dwCodeLen := 10;
HttpQueryInfo(hfile,
HTTP_QUERY_STATUS_CODE,
@dwcode,
dwcodeLen,
dwIndex);
res := pchar(@dwcode);
dwNumber := sizeof(databuffer)-1;
if (res ='200') or (res ='302') then begin
while (InternetReadfile(hfile,@databuffer,dwNumber,DwRead)) AND (dwRead <>0) do begin
databuffer[dwread]:=#0;
Str := pchar(@databuffer);
resStr := resStr + Str;
Application.ProcessMessages;
end;
end else
ResStr := 'Status:'+res;
Finally
InternetCloseHandle(hfile);
End;
Finally
InternetCloseHandle(hsession);
End;
Result := ResStr;
end;
Der Aufruf erfolgt so:
procedure TForm1.MultilineButton1Click(Sender: TObject);
begin
Memo1.Text:=GetHTML('http://www.delphi-treff.de');
end;
Ähnliche Seiten: