Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

Re: Memo.Text := Ansistring? nur wie

  Alt 7. Jan 2009, 17:31
[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;
  Mit Zitat antworten Zitat