Mit dem folgenden Code lese ich den
HTML Code der geladenen Web-Seiten auf:
Code:
function GetHTMLCode(xUrl: String): String;
var
xResult : TStringList;
xResMemo : TMemoStream;
begin
xResult := TStringList.Create;
xResMemo : TMemoStream.Create;
try
try
IdHTTP1.Get(xUrl, xResMemo);
xResMemo.Position := 0;
xResult.Text := StreamToText(xResMemo, ' ', 00);
except
on E: EIdHTTPProtocolException do
begin
xResult.Add('E.Message: ' + E.Message);
xResult.Add('E.ErrorMessage:');
xResult.Add(E.ErrorMessage);
end;
end;
finally
Result := xResult.Text;
xResult.Free;
xResMemo.Free;
end;
end;
function StreamToText(sStream: TStream; sNewSign: string; sOldSign: Integer): AnsiString;
var
xLen, j, xSize : Integer;
xTemp : string;
begin
try
xLen := sStream.Size;
SetLength(Result, xLen);
if xLen > 0 then
begin
sStream.ReadBuffer(Result[1], xLen);
for j := 1 to xLen do
begin
if Ord(Result[j]) = sOldSign then
begin
xTemp := xTemp + sNewSign
end else
begin
xTemp := xTemp + Result[j];
end;
end;
end;
finally
Result := xTemp;
end;
end;
Damit der
HTML Code der aufgerufenen Seiten vollständig als Text angezeigt werden kann muss ich ein MemoryStream nutzen, dazu habe ich schon in einem anderen Beitrag das Problem erläutert.
Allerdings habe ich jetzt das Problem das kyrillische, chinesische, usw. Zeichen als Hieroglyphen angezeigt werden.
Wie kann man die Zeichen aus der Funktion richtig in einen Text kodieren?