Denk daran, dass ein 32Bit integer nur bis 2147483647 reicht; also nur 9 bis 10 Ziffern aufnehmen kann.
Nimm besser folgende Funktion:
Delphi-Quellcode:
// kopiert aus der JCL
function StrKeepChars(const S: string; const Chars: TSysCharSet): string;
var
Source, Dest: PChar;
Len, Index: Integer;
begin
Len := Length(S);
SetLength(Result, Len);
UniqueString(Result);
Source := PChar(S);
Dest := PChar(Result);
for Index := 0 to Len-1 do
begin
if Source^ in Chars then
begin
Dest^ := Source^;
Inc(Dest,SizeOf(Char));
end;
Inc(Source,SizeOf(Char));
end;
SetLength(Result, (Longint(Dest) - Longint(PChar(Result))) div SizeOf(Char));
end;
telnr_ohne_sonderzeichen := StrKeepChars(telnr, ['0'..'9']);