
Zitat von
marabu:
Der Reiz einer Regular Expression liegt für mich im nicht prozeduralen Ansatz, aber sie kann nie schneller sein, als eine gute handkodierte Lösung:
... deren Performance durch Einbeziehung egozentrischer Performancemanie noch leicht gesteigert werden kann

:
Delphi-Quellcode:
Function AlzPurgeID(Const list: String): String;
Var
iStop, iPos, iDest: Integer;
Begin
iStop := Length(list);
SetLength(Result, iStop);
iDest := 0;
iPos := 1;
While iPos <= iStop Do Begin
If list[iPos] = '{' Then
While (iPos <= iStop) And (list[iPos] <> '}') Do
inc(iPos)
Else Begin
Inc(iDest);
Result[iDest] := list[iPos];
End;
inc(iPos);
End;
SetLength(Result, iDest);
End;
Sir Thornberry's Anmerkungen zur Performancebremse 'sString := sString + sSubString' kann ich nur beipflichten. Der Unterschied ist in etwa vergleichbar miz dem Unterschied in der Zubereitungszeit einer Tasse Nescafe und dem eigenhändigen Anbau, Ernte, Röstung, Malen und Brühen von jamiakanischem Blue Mountain. Wobei der Vergleich hinkt: Jamaican Blue Mountain ist es Wert, etwas länger zu warten, Stringkonkatenation hingegen nicht.
Und nun: Assemblerfraktion und Performancegeeks vortreten, bitte!