Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

#0 perfomanceschonend aus String entfernen

  Alt 16. Feb 2010, 15:52
Hallo,

ich lade mittels folgenden Code eine Text-Datei in mein Programm, dass #0 enthält:
Delphi-Quellcode:
  //FileStream und StringStream erzeugen
  FileStream := TFileStream.Create(Datei, fmOpenRead);
  StringStream := TStringStream.Create(S);

  try
    //FileStream in StringStream kopieren
    FileStream.Position := 0;
    StringStream.CopyFrom(FileStream, FileStream.Size);

    //String aus StringStream auslesen
    StringStream.Position := 0;
    S := StringStream.ReadString(StringStream.Size);
In "S" hab ich dann den String der Datei aber noch mit #0.
Um dieses "Zeichen" jetzt zu entfernen, nutz ich folgenden Code:
Delphi-Quellcode:
    //#0 durch #32 ersetzen
    for i := 1 to length(S) do
      begin
        If S[i] = #0 then
          S[i] := #32;
      end;
Nur ist das jetzt nicht sehr perfomance-schonend.
Vor allem, weil die einzulesende Datei gute 4 MB hat und dementsprechend Zeichen.

Gibt es dafür eine bessere Lösung?

Noch kurz als Info: Momentan arbeite ich dann mit "S", also dem String, weiter.
Ich möchte aber nun das Ganze in eine StringList laden.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat