Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#6

Re: #0 perfomanceschonend aus String entfernen

  Alt 16. Feb 2010, 17:26
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);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat