Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

Re: #0 perfomanceschonend aus String entfernen

  Alt 16. Feb 2010, 17:14
Zitat von Helmi:
Mir kam das Char-weise durchsteppen durch den String etwas unprofessional (billig) vor.
Das scheint nur so.
"Professionel" ist wenn der Sourcecode einfach strukturiert und und quasi selbsterklärend ist:
Delphi-Quellcode:
function StrReplaceChar(const S: Ansistring; const Source, Replace: AnsiChar): string;
var
  I: Integer;
begin
  Result := S;
  // hier besteht noch Optimierungsmöglichkeit durch Verwendung eines Zeigers
  for I := 1 to Length(S) do
    if Result[I] = Source then
      Result[I] := Replace;
end;
und dann später:
Memo1.Lines.Text := StrReplaceChar(StringStream.DataString, #0, ' '); Nix gegen Himitsu, aber die Lösung aus Betrag #6 mit dem Memorystream ist deutlich schwerer zu lesen.
Der StringStream ist dem Memorystream vorzuziehen, da es viel sicherer und einfacher ist mit Strings zu arbeiten.
(du hast nur noch nicht mitgekriegt, dass man über das Property DataString direkt auf den Inhalt zugreifen kann)
Die potentiell "lebensgefährliche" Funktion MoveMemory() wird vermieden und das ist sehr wichtig für die Softwarequalität.
MoveMemory() ist wie eine geladene Schrotflinte unterm Bett - sie kann dir jederzeit den ganzen Fuss wegschiesen!
Andreas
  Mit Zitat antworten Zitat