Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: StringReplace und doppelte Zeichen

  Alt 4. Mai 2009, 11: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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat