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