[quote="emsländer"]
Delphi-Quellcode:
if odlg.Execute then begin
fs := TFileStream.Create(odlg.FileName, fmOpenRead or fmShareDenyWrite);
fs.Position := 0; // File in den String-Stream schreiben
Das ist ja wie "
Query.Open;
Query.First". Wo steht man denn wohl, wenn man die Datei gerade geöffnet hat.
Zitat:
sstream := TStringStream.Create;
TStringStream ist bereits ein
Unicode-String-Stream. Das wird so also nicht klappen, außer du hast einen UTF16 Text in der Datei.
Warum nicht einfach so einlesen:
Delphi-Quellcode:
var
Stream: TFileStream;
AnsiTemp: AnsiString;
begin
...
Stream := TFileStream.Create(odlg.FileName, fmOpenRead or fmShareDenyWrite);
try
SetLength(AnsiTemp, Stream.Size);
if AnsiTemp <> '' then
Stream.Read(AnsiTemp[1], Stream.Size);
finally
Stream.Free;
end;
Memo1.Lines.Text := string(AnsiTemp); // hier findet ein Aufruf von MultiByteToWideChar() statt
end;