Hallo.
Mußte heute viel Arbeit mit nehmen und da sind 500 Prüfsummen zu ermitteln.
Und L3viathan2142 brachte mich auf die Idee, das ganze via Script zu machen. Danke L3viathan2142.
Eingabe 1 Bsp.: 7953
Eingabe 2 Bsp.: 1310
Ausgabe = Eingabe 1 + Eingabe 2 Bsp.: 9263
Prüfsumme = alle Ziffern der Eingabe 1, Eingabe 2 und der Ausgabe addieren, also 7+9+5+3+1+3+1+0+9+2+6+3
Da dann aber 49 heraus kommt weiter rechnen: 4+9 = 13.
Immer noch zweistellig, also weiter rechnen= 1+3 = 4
Und die Prüfsumme ist 4 und kommt mit folgenden Script auch raus.
BITTE !!!
Ich arbeite das erste mal mit "StringMid" und nimmt es mir nicht zu übel, das das Script evtl. doppelt so lang ist wie man es machen könnte. Aber ich meine das es fehlerfrei arbeitet.
Einfach mal testen.
Spoiler anzeigen
#include <GUIConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("MMT Prüfsummenberechnung v. AHL", 457, 99, 193, 125)
$Input1 = GUICtrlCreateInput("9999", 8, 8, 97, 21)
$Input2 = GUICtrlCreateInput("9999", 112, 8, 97, 21)
$Input3 = GUICtrlCreateInput("", 240, 8, 97, 21)
$Input4 = GUICtrlCreateInput("", 384, 8, 57, 21)
$Label1 = GUICtrlCreateLabel("EIN 1", 8, 32, 36, 17)
$Label2 = GUICtrlCreateLabel("EIN 2", 112, 32, 36, 17)
$Label3 = GUICtrlCreateLabel("Ausgabe", 240, 32, 45, 17)
$Label4 = GUICtrlCreateLabel("Prüfsumme", 384, 32, 56, 17)
$Berechnen = GUICtrlCreateButton("Berechnen", 8, 50, 441, 41, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Berechnen
$wert3 =(StringMid(GUICtrlRead($Input1),1,4))+(StringMid(GUICtrlRead($Input2),1,4))
GUICtrlSetData($Input3, $wert3)
;zähle alle Ziffer der Werte 1 bis 3 zusammen
$wert4 =((StringMid(GUICtrlRead($Input1),1,1))+(StringMid(GUICtrlRead($Input1),2,1))+(StringMid(GUICtrlRead($Input1),3,1))+(StringMid(GUICtrlRead($Input1),4,1))+(StringMid(GUICtrlRead($Input2),1,1))+(StringMid(GUICtrlRead($Input2),2,1))+(StringMid(GUICtrlRead($Input2),3,1))+(StringMid(GUICtrlRead($Input2),4,1))+(StringMid(GUICtrlRead($Input3),1,1))+(StringMid(GUICtrlRead($Input3),2,1))+(StringMid(GUICtrlRead($Input3),3,1))+(StringMid(GUICtrlRead($Input3),4,1))+(StringMid(GUICtrlRead($Input3),5,1)))
GUICtrlSetData($Input4, $wert4)
; Zahl ist noch nicht einstellig, also beide Stelle von Wert4 addieren
$wert5 =((StringMid(GUICtrlRead($Input4),1,1))+(StringMid(GUICtrlRead($Input4),2,1))+(StringMid(GUICtrlRead($Input4),3,1)))
GUICtrlSetData($Input4, $wert5)
if GUICtrlRead($Input1) > 9 Then
$wert6 =((StringMid(GUICtrlRead($Input4),1,1))+(StringMid(GUICtrlRead($Input4),2,1)))
GUICtrlSetData($Input4, $wert6)
EndIf
MsgBox(0, "MMT Prüfsummenberechnung v. AHL. für 4-er Zahlen", "Prüfsumme " & $wert6)
EndSwitch
WEnd