Hallo,
Ich muß eine Textdatei einlesen. Das Problem ist das der Inhalt polnisch ist.
Die Textdatei wurde mit dem UTF-8 Zeichensatz gespeichert.
Erst habe ich versucht die Datei mit AssignFile(f,s) zu öffnen.
f ist vom type TextFile und s vom Type Widestring. Im Debugmodus erkenne ich jedoch schon das
die Zeichen in s nicht richtig dargestellt werden.
Mein zweiter Versuch war dann die Datei mit TFileStream zu öffnen jedoch habe ich hier auch das gleiche Porblem. Die Zeichen werden nicht richtig dargestellt.
Hier mein Quellcode zu meinem ersten Versuch:
Delphi-Quellcode:
var
s : WideString;
f : TextFile;
begin
OpenDialog1.Execute;
AssignFile(f, OpenDialog1.Filename);
Reset(f);
While not eof(f) do begin
Readln(f,s);
Image1.Canvas.Font.Charset := EASTEUROPE_CHARSET;
Image1.Canvas.Font.Size := 8;
TextOutW(Image1.Canvas.Handle, 0, 0, PWideChar(s), Length(s));
end;
CloseFile(f);
end;
Und mein Quellcode zum zweiten Versuch:
Delphi-Quellcode:
var
s : WideString;
f : TFileStream;
begin
OpenDialog1.Execute;
f := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
SetLength(s, 10);
f.Read(s[1], 10);
f.Free;
Label3.Caption := s;
Image1.Canvas.Font.Charset := EASTEUROPE_CHARSET;
TextOutW(Image1.Canvas.Handle, 0, 0, PWideChar(s), 10);
end;
In der Textdatei ist folgender Wert : 'Wewnętrzne szczegóły'
Ps. TextOutW ist eine
Api Funktion wenn ich für s zum Beispiel #9787 angebe wird mir auch das richtige Zeichen in meinem Image ausgegeben.
Kann mir einer erklären wie man eine Textdatei (Utf-8) richtig auslies?
[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]