Hi,
vielleicht gibts das noch nicht
Spoiler anzeigen
;
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Zahlen in Worte", 537, 81, 192, 114)
$in = GUICtrlCreateInput("", 72, 16, 233, 21)
$Label1 = GUICtrlCreateLabel("Eingabe:", 16, 24, 46, 17)
$out = GUICtrlCreateInput("", 72, 40, 449, 21)
$Label2 = GUICtrlCreateLabel("Ausgabe:", 16, 40, 49, 17)
GUISetState(@SW_SHOW)
Dim $z, $w, $r, $i, $Zahl_In_Worten, $Ziffer, $vi
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $in
$w = ""
GUICtrlSetData($out, "")
GUICtrlSetData($out, tozahl(GUICtrlRead($in)))
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func tozahl($z)
For $i = 6 To 0 Step -3
If StringLen($z) > $i Then
$r = StringRight($z / (10 ^ $i), 3)
If $r > 99 Then
$w = Ziffer(1, StringLeft($r, 1), $w) & "hundert"
$r = StringRight($r, 2)
EndIf
If $r > 19 Then
$w = Ziffer(3, StringRight($r, 1), $w)
$w = Ziffer(4, StringLeft($r, 1), $w)
EndIf
If $i = 0 And StringMid($z,StringLen($z)-2,2) = "00" And $r > 0 Then $w = $w & "und"
[/autoit] [autoit][/autoit] [autoit]If $r < 10 Then $w = Ziffer(1, $r, $w)
[/autoit] [autoit][/autoit] [autoit]If $r > 9 And $r < 20 Then $w = Ziffer(2, StringRight($r, 1), $w)
If $vi = 6 And StringLen($z) = 7 And $r = 1 Then $w = "einemillion"
If $i = 6 And StringRight($z / 10 ^ $i, 3) > 1 Then $w = $w & "millionen"
If $i = 3 And StringRight($z / 10 ^ $i, 3) > 0 Then $w = $w & "tausend"
If $i = 0 And $r = 1 Then $w = $w & "s"
EndIf
Next
if $z = 0 then $w = "null"
return $w
EndFunc
Func Ziffer($Par, $r, $w)
$x = 'ein,zwei,drei,vier,fünf,sech,sieb,acht,neun'
$x = StringSplit($x,",")
$x[0] = ""
$w = $w & $x[$r]
Select
Case $Par = 1 Or $Par = 3
If $r = 6 Then $w = $w & "s"
If $r = 7 Then $w = $w & "en"
If $Par = 3 And $r > 0 Then $w = $w & "und"
Case $Par = 2
$w = $w & "zehn"
If $r = 1 Then $w = StringLeft($w, StringLen($w) - 7) & "elf"
If $r = 2 Then $w = StringLeft($w, StringLen($w) - & "zwölf"
Case $Par = 4
If $r = 2 Then $w = StringLeft($w, StringLen($w) - 4) & "zwan"
$w = $w & "zig"
If $r = 3 Then $w = StringLeft($w, StringLen($w) - 3) & "ßig"
EndSelect
return $w
EndFunc
In Zeile 52 musste ich leider was seltsames einfügen, irgendwie kommt da meistens eine "9" rein, keine Ahnung, wie das zustande kommt...
Ansonsten läufts, bei mehr als 6-stelligen Zahlen langt die Output-Zeile nicht mehr für den "ersten Blick"
Gruß
x0r