Ich hatte ne Idee und mir war langweilig, also habe ich schnell mal was gemacht...
Spoiler anzeigen
$Text = "Das ist ein Text. Mal sehen, ob das funktioniert!?"
$Result = _GetTextAsSMS($Text)
MsgBox(0, "", $Result)
Func _GetTextAsSMS($String)
Dim $Result
$Chars = _GetChars($String)
For $i = 0 To UBound($Chars) -1
Switch $Chars[$i]
Case "A"
$Result &= "2 "
Case "B"
$Result &= "22 "
Case "C"
$Result &= "222 "
Case "D"
$Result &= "3 "
Case "E"
$Result &= "33 "
Case "F"
$Result &= "333 "
Case "G"
$Result &= "4 "
Case "H"
$Result &= "44 "
Case "I"
$Result &= "444 "
Case "J"
$Result &= "5 "
Case "K"
$Result &= "55 "
Case "L"
$Result &= "555 "
Case "M"
$Result &= "6 "
Case "N"
$Result &= "66 "
Case "O"
$Result &= "666 "
Case "P"
$Result &= "7 "
Case "Q"
$Result &= "77 "
Case "R"
$Result &= "777 "
Case "S"
$Result &= "7777 "
Case "T"
$Result &= "8 "
Case "U"
$Result &= "88 "
Case "V"
$Result &= "888 "
Case "W"
$Result &= "9 "
Case "X"
$Result &= "99 "
Case "Y"
$Result &= "999 "
Case "Z"
$Result &= "9999 "
Case "."
$Result &= "1 "
Case ","
$Result &= "11 "
Case "-"
$Result &= "111 "
Case "?"
$Result &= "1111 "
Case "!"
$Result &= "11111 "
Case " "
$Result &= "# "
EndSwitch
Next
Return StringLeft($Result, StringLen($Result)-1)
EndFunc
Func _GetChars($String)
Dim $Array[1]
ReDim $Array[StringLen($String)]
For $i = 0 To StringLen($String) - 1
$Array[$i] = StringMid($String, $i+1, 1)
Next
Return $Array
EndFunc
Die Funktion _GetChars ist unsinnig, weil
[autoit]StringSplit($String, "")
[/autoit]wohl auch funzt, aber egal