Registriert seit: 25. Jun 2006
519 Beiträge
Delphi 7 Personal
|
Re: Funktionsaufruf: Dauert immer länger. Warum?
11. Apr 2009, 17:55
Danke Christian und Cyf, nochmals 50% rausgeholt.
Kleine Änderungen am Vorschlag vorgenommen, damit der Text auch angezeigt wird:
Delphi-Quellcode:
// Zur Erinnerung:
// var
// ValidChars1: array[1..53] of Char = //('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' //','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
//Neue Version mit Vorschlag von Cyf:
function ClearStrTest(const Str: string): String;
var
i,x,count:Integer;
begin
if Str = '' then Exit;
result:='';
count:=1; // Start bei 1..
SetLength(Result, Length(Str));
for i:=1 to Length(Str) do
begin
for x:=1 to 53 do
if (str[i] = ValidChars1[x]) then //Hier durchlaufen wir die Tabelle
begin
Result[Count]:= Str[i];
Inc(Count);
Break; //... und for-Schleife verlassen.
end;
end;
SetLength(result, Count-1); //... und hier 1 wieder abgezogen
end;
Möglicherweise geht es mit Pointern noch schneller?
[Edit] Damit "schlägt Tabelle die Menge", vorausgesetzt die Tabelle ist so groß wie oben.
|