Einzelnen Beitrag anzeigen

freejay

Registriert seit: 26. Mai 2004
Ort: Nürnberg
272 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: UTF8-kodierte Datei (OHNE BOM!) korrekt in Memo laden?

  Alt 16. Nov 2009, 17:34
Zitat von Bernhard Geyer:
Lade die Datei in einen Stream in dem du den UTF8-BOM an den Anfange geschrieben hast.
Lade den kompletten Stream mit BOM ins Memofeld.
Das habe ich probiert. Bekomme aber immer ein leeres Memofeld und ErrorMessage "Zugriff verweigert":

Delphi-Quellcode:
procedure TForm37.Button1Click(Sender: TObject);
var
  FileStream: tFileStream;
  Preamble: TBytes;
  memStream: TMemoryStream;
begin
  if OpenDialog1.Execute then
  begin
    FileStream := TFileStream.Create(OpenDialog1.FileName,fmOpenRead or fmShareDenyWrite);
    MemStream := TMemoryStream.Create;

    Preamble := TEncoding.UTF8.GetPreamble;
    memStream.Write(Preamble[0],length(Preamble));
    memStream.CopyFrom(FileStream,FileStream.Size);
    memStream.Seek(0,soFromBeginning);

    memo1.Lines.LoadFromStream(memStream);

    showmessage(SysErrorMessage(GetLastError));

    FileStream.Free;
    memStream.Free;
  end;
end;
  Mit Zitat antworten Zitat