Zitat von
SirThornberry:
function RemoveDlbSpaces(const AStr: String): String;
Also wie gesagt, ich habe ja immer meine gesamte Funktion (mit dem StringReplace) gemessen und daher die letzte "kleine" Verbesserung.
Da ich ja lediglich zusätzlich noch #9, #13 und #10 ersetzen bzw. löschen will hab ich die Funktion nun entsprechend mal angepasst und nun braucht das ganze nur noch
3,77 ms hingegen vorher
0.751 sek!!!.
Genial, das reicht
)) !
Delphi-Quellcode:
function CollapseString(const AStr: String): String;
var LCount,
LDstLen,
LSpCnt,
LSrcLen : Integer;
LDst,
LSrc : PChar;
begin
LDstLen := 0;
LSrcLen := Length(AStr);
SetLength(result, LSrcLen);
LSpCnt := 0;
LSrc := PChar(AStr);
LDst := PChar(result);
for LCount := 1 to LSrcLen do begin
if (LSrc^ = #10)
or (LSrc^ = #13)
or (LSrc^ = #9)
then LSrc^ := #32;
if LSrc^ = #32
then inc(LSpCnt)
else LSpCnt := 0;
if (LSpCnt < 2) then begin
LDst^ := LSrc^;
inc(Cardinal(LDst));
inc(LDstLen);
end;
inc(Cardinal(LSrc));
end;
SetLength(result, LDstLen);
end;
Grüße aus Kassel.
Konfuzius sprach: Etwas lernen und sich immer wieder darin üben - schafft das nicht auch Befriedigung?