TStringList hört bei #0 auf mit einlesen, also fehlt dann nach dem Einlesen so Einiges,
Aber den TStringStream hätte man sich wohl Sparen können.
Und wie schon gesagt, 4 MB ist für diese FOR-Schleife doch garnichts.
Aber wenn es unbedingt sein muß
Delphi-Quellcode:
var MS: TMemoryStream;
S: AnsiString;
i: Integer;
begin
MS.LoadFromFile(Datei);
For i := MS.Size - 1 downto 0 do
If PAnsiChar(MS.Memory)[i] = #0 Then PAnsiChar(MS.Memory)[i] := ' ';
SetLength(S, MS.Size);
MoveMemory(@S[1], MS.Memory, MS.Size);
StringList.Text := S;
oder gleich
Delphi-Quellcode:
var MS: TMemoryStream;
i: Integer;
begin
MS.LoadFromFile(Datei);
For i := MS.Size - 1 downto 0 do
If PAnsiChar(MS.Memory)[i] = #0 Then PAnsiChar(MS.Memory)[i] := ' ';
StringList.LoadFormStream(MS);