Generell dürfte ein Besuche bei den
Fastcoders einen Versuch Wert sein.
Bei deiner Funktion fällt mir auf, dass du die Größe des Strings 2-mal besetzt und Zum Iterieren durch einen string eignet sich ein PChar ganz gut.
Delphi-Quellcode:
function ZahlAusString(const aSearchString: string): string;
var
i : Integer;
CurrentChar : PChar;
NumberFound : Boolean;
NumberStart : Integer;
NumberLength : Integer;
begin
NumberFound := False;
NumberStart := -1;
NumberLength := 0;
CurrentChar := PChar(aSearchString);
for i := 1 to Length(aSearchString) do
begin
if CurrentChar^ in ['0'..'9'] then
begin
inc(NumberLength);
if not NumberFound then
begin
NumberStart := i;
NumberFound := True;
end;
end
else if NumberFound then
break;
inc(CurrentChar);
end;
if NumberFound then
result := Copy(aSearchString, NumberStart, NumberLength)
else
result := '';
end;