Warum nutzt du nicht die LoadFromFile-Methode von TMemo und welche Delphi-Version nutzt du (ich tippe stark auf Delphi 2009)?
Edit: Wenn da wirklich diese asiatischen Zeichen in der Memo erscheinen, dann kann das ja eigentlich nur Delphi 2009 sein. Da musst du dann mit String/AnsiString/Unicode aufpassen. Da deine Datei scheinbar im Ansi-Format gespeichert ist, sollte das dann so funktionieren
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| function loadfile(const FileName: string): AnsiString; var Stream: THandle; Size,Bytes:Cardinal; begin if length(FileName) = 0 then exit; Stream := CreateFile(pchar(FileName), GENERIC_READ,0, nil,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if Stream <> INVALID_HANDLE_VALUE then begin Size := GetFileSize(Stream,nil); SetLength(Result,Size); ReadFile(Stream, pAnsiChar(Result)^,Size,Bytes,nil); CloseHandle(Stream); end; end; |
Trotzdem - oder gerade dann - wäre die echte LoadfromFile-Methode des TMemo besser, denn die kommt bei D2009 auch mit anderen Kodierungen zurecht, wenn ein entsprechendes BOM gesetzt ist.
We are, we were and will not be.