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;