Haben wir denn eine konkrete Beispiel-Datei? Wenn ich mitten in eine "Text"-Datei ein Nullbyte reinpacke hat ReadAllText damit kein Problem:
Delphi-Quellcode:
uses
System.SysUtils,
System.Classes,
System.IoUtils;
const
filePath = 'x:\someFile.dat';
DLE = 16;
NULL = 0;
var
bytes: TBytes;
stream: TStream;
fileContent: String;
begin
// 1) Datei schreiben
TFile.WriteAllText(filePath, 'Vor Steuerzeichen');
bytes := [DLE, NULL];
stream := TFile.OpenWrite(filePath);
try
stream.Seek(0, TSeekOrigin.soEnd);
stream.Write(bytes, 2);
finally
stream.Destroy();
end;
TFile.AppendAllText(filePath, 'Nach Steuerzeichen');
// 2) Datei lesen (einfach)
fileContent := TFile.ReadAllText(filePath);
WriteLn( fileContent.QuotedString());
ReadLn;
end.