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