Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: String auf Buchstaben testen

  Alt 5. Aug 2006, 17:10
Hallo Leute,

AmateurProfi hat mir gegenüber in einer PN den Verdacht geäußert, dass eine Umstellung des Tests von string search auf set membership deutliche Laufzeitverbesserungen mit sich bringen könnte. Und Recht hat er damit. Der Compiler erzeugt so wesentlich effektiveren Code.

Hier seine Funktion:

Delphi-Quellcode:
type
   TCharSet = Set of Char;

const
  LCASE = ['a'..'z', 'ä', 'ö', 'ü'];
  UCASE = ['A'..'Z', 'A', 'Ö', 'Ü'];
  ALPHA = LCASE + UCASE + ['ß'];

function ContainsOnly(const s: String; chars: TCharSet): Boolean;
var
  i: Integer;
begin
  i := Length(s);
  Result := s <> ''; // eine Frage der Definition ...
  while Result and (i > 0) do
  begin
    Result := s[i] in chars;
    Dec(i);
  end;
end;
Teuflisch schnell auch ohne Assembler - danke Klaus.

Grüße vom marabu
  Mit Zitat antworten Zitat