Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

Re: StringReplace und doppelte Zeichen

  Alt 4. Mai 2009, 10:28
völlig unoptimiert, aber zumindestens ohne "unübersichtlierem" Continue-rumgespringe
Delphi-Quellcode:
Result := S;
i := Length(Result) - 1;
While i > 0 do Begin
  If (Result[i] = ' ') and (Result[i + 1] = ' ') Then Delete(Result, i + 1, 1);
  Dec(i);
End;
steht so in etwa in meinem TXMLFile.Trim ... nja, erst die Funktion, dann alles Durchoptimieren

aber wie gesagt, diese ständigen Zugriffe auf die Chars im String (da wird mehr gemacht, als nur das Zeichen ausgelesen) und das zu häufige Rumkopieren des gesamten Strings, bei jedem Delete .... nicht unbedingt Schnell und Resourcenschonend.

[add]
Code:
function TForm1.DeleteDoubleSpace([b]s: string[/b]): string;
und was den Funktionsaufruf angeht ... siehe http://www.delphipraxis.net/internal...t.php?t=156940

[add2]
ach ja, gib mal bitte deiner Funktion einen Leerstring zum Futtern DeleteDoubleSpace('') ...
die Exception ist bestimmt ganz hübsch Anzusehn
und bei eingeschalteter Bereichsprüfung würde auch schon ein String mit weniger als 2 Zeichen eine Meldung von sich geben.

MfG
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat