Ich habe gerade mal die Versionen von himitsu durchprobiert.
Die funktionieren echt gut, mit nur einer Ausnahme, er schneidet die erste Zahl ab, und packt Sie ans Ende. Also aus zb. 1234567890 macht er 0123456789.
Und das sowohl bei der Version ohne als auch mit Vorzeichen.
Edit:
+1 vergessen, so funktioniert es wie es soll Danke
:
Delphi-Quellcode:
function GetNums(const Text: string): TIntegerDynArray;
var
L, i: Integer;
begin
SetLength(Result, 1);
Result[0] := '';
L := 0;
for i := 1 to Length(Text) do
if (Text[i] in ['0'..'9']) or ((Result[L] = '') and (Text[i] in ['+', '-'])
and (i < Length(Text)) and (Text[i + 1] in ['0'..'9'])) then
Insert(Text[i], Result[L], Length(Result[L])+1) // hier die +1 einfügen
else if Result[L] <> '' then begin
Inc(L);
SetLength(Result, L + 1);
end;
if Result[L] = '' then
SetLength(Result, L);
end;