Einzelnen Beitrag anzeigen

Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#10

Re: Funktionsaufruf: Dauert immer länger. Warum?

  Alt 11. Apr 2009, 16: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.
  Mit Zitat antworten Zitat