Wenn du das mehr als einmal verwendest, kannst du es auch als eigene Funktion schreiben. Dann hast du natürlich auch nur noch einen Befehl zum Aufruf:
Spoiler anzeigen
$string="abc,+12-tzr563Q><?9" ;num=125639
MsgBox(0,"numerisch:",_StringNumExtract($string))
Func _StringNumExtract($fullstring)
$num=""
$len=StringLen($fullstring)
For $i=1 To $len
$pos=StringMid($fullstring,$i,1)
If StringIsDigit($pos) Then $num=$num&$pos
Next
If $num <>"" Then
Return $num
Else
Return -1 ; String enthält keine numerischen Elemente
EndIf
EndFunc
Edit:
Ich hab mal die Funktion noch erweitert. Sie gibt nun Status (numerisch enthalten oder nicht), numerischen und nichtnumerischen Stringteil in ein Array aus:
Spoiler anzeigen
$string= "abc,+12-tzr563Q><?9" ;num=125639
$zahl= _StringNumExtract($string)
MsgBox(0,"","numerisch: "&$zahl[1]& @LF &"nichtnumerisch: "&$zahl[2])
Func _StringNumExtract($fullstring)
Dim $array[3]
$num=""
$nonum=""
$len=StringLen($fullstring)
For $i=1 To $len
$pos=StringMid($fullstring,$i,1)
If StringIsDigit($pos) Then
$num=$num&$pos
Else
$nonum=$nonum&$pos
EndIf
Next
If $num <>"" Then
$array[1]= $num ; alle numerischen Elemente
$array[0]= 0 ; numerische Elemente enthalten
Else
$array[0]= -1 ; String enthält keine numerischen Elemente
EndIf
$array[2]= $nonum ; alle nichtnumerischen Elemente
Return $array ; Rückgabe Array [0] enthält Status 0 od. -1; [1] enthält num. Teil; [2] enthält nichtnum. Teil
EndFunc