10 € Schein Analysetool

    • Offizieller Beitrag

    Hi,
    ich hab mich auch mal dran gemacht. ;)
    Beim Betrachten der Aufgabe denkt man schon, das ist doch Pillepalle. Na gut, der Algorithmus ist nicht schwierig.
    Wie üblich liegen 90 % der Arbeit darin alle möglichen (und unmöglichen) Eigaben und Fehler abzufangen. ;)
    Um das Endprodukt DAU-sicher zu machen, ist es doch viel umfangreicher geworden als ich dachte. :rofl:
    Man könnte natürlich noch die verschiedenen Gewinnkategorien in unterschiedlichen Farben darstellen - aber das war mir dann doch zuviel.

    EDIT: Hab noch eine Fehlermöglichkeit abgefangen (Eintrag löschen bei aktiver Ergebnisliste). Und noch 'ne Fehlerquelle abgefangen (Löschen bei leerer Liste).

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GuiListView.au3>
    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    Dim $arAlleSN, $arTreffer[1], $Fehler = 0, $SN
    Dim $alleRichtig = 0, $dreiRichtig = 0, $zweiRichtig = 0, $einRichtig = 0, $lastEntry, $new = 0
    Dim $rot = 0xFF0000
    $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
    $arTreffer[0] = 0
    If @error = 1 Then $Fehler = 1

    [/autoit] [autoit][/autoit] [autoit]

    $Form1 = GUICreate("100.000 für 10", 636, 344, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Ende")
    $ListView1 = GUICtrlCreateListView("Seriennummern", 17, 19, 353, 305)
    _GUICtrlListViewSetColumnWidth(-1, 0, 349)
    $Group0 = GUICtrlCreateGroup(" Modus ", 384, 17, 240, 40)
    $Radio1 = GUICtrlCreateRadio("Erfassen", 400, 30, 80)
    GUICtrlSetOnEvent(-1, "RadioErfassen")
    $Radio2 = GUICtrlCreateRadio("Vergleichen", 520, 30, 80)
    GUICtrlSetOnEvent(-1, "RadioVergleichen")
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group1 = GUICtrlCreateGroup(" Seriennummer ", 384, 59, 240, 57)
    $Input1 = GUICtrlCreateInput("", 395, 81, 220, 21, $ES_UPPERCASE)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("Vergleichen", 384, 128, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "Vergleichen")
    $Group2 = GUICtrlCreateGroup(" Ergebnis ", 384, 158, 240, 167)
    $Label0 = GUICtrlCreateLabel("Hauptgewinn", 465, 180, 90, 17)
    GUICtrlSetColor($Label0, $rot)
    GUICtrlSetStyle(-1, $WS_DISABLED)
    $Label1 = GUICtrlCreateLabel("letzte 3 Ziffern richtig", 396, 214, 102, 17)
    GUICtrlSetStyle(-1, $WS_DISABLED)
    $Label2 = GUICtrlCreateLabel("letzte 2 Ziffern richtig", 396, 252, 102, 17)
    GUICtrlSetStyle(-1, $WS_DISABLED)
    $Label3 = GUICtrlCreateLabel("letzte Ziffer richtig", 396, 290, 87, 17)
    GUICtrlSetStyle(-1, $WS_DISABLED)
    $Input2 = GUICtrlCreateInput("", 550, 211, 45, 21, BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY))
    $Input3 = GUICtrlCreateInput("", 550, 249, 45, 21, BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY))
    $Input4 = GUICtrlCreateInput("", 550, 287, 45, 21, BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY))
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button2 = GUICtrlCreateButton("Ende", 554, 128, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "Ende")
    $Button3 = GUICtrlCreateButton("Löschen", 469, 128, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "DeleteSN")

    [/autoit] [autoit][/autoit] [autoit]

    If $Fehler = 1 Then
    $lastEntry = 0
    Else
    $lastEntry = StringTrimLeft($arAlleSN[$arAlleSN[0][0]][1], 2)
    _ListAllSN()
    EndIf
    If Not FileExists(@ScriptDir & "\SN10Euro.INI") Then
    GUICtrlSetState($Button3, $GUI_DISABLE)
    Else
    GUICtrlSetState($Button3, $GUI_ENABLE)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)
    ControlFocus("", "", $Input1)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _ListAllSN()
    If IsArray($arAlleSN) Then
    For $i = 1 To $arAlleSN[0][0]
    _GUICtrlListViewInsertItem($ListView1, -1, $arAlleSN[$i][1])
    Next
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func RadioErfassen()
    GUICtrlSetData($Button1, "Erfassen")
    If Not FileExists(@ScriptDir & "\SN10Euro.INI") Then
    GUICtrlSetState($Button3, $GUI_DISABLE)
    Else
    GUICtrlSetState($Button3, $GUI_ENABLE)
    EndIf
    GUICtrlSetStyle($Label0, $WS_DISABLED)
    GUICtrlSetStyle($Label1, $WS_DISABLED)
    GUICtrlSetStyle($Label2, $WS_DISABLED)
    GUICtrlSetStyle($Label3, $WS_DISABLED)
    _GUICtrlListViewDeleteAllItems($ListView1)
    If $Fehler = 0 Then _ListAllSN()
    ControlFocus("", "", $Input1)
    GUICtrlSetData($Input2, "")
    GUICtrlSetData($Input3, "")
    GUICtrlSetData($Input4, "")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func RadioVergleichen()
    GUICtrlSetData($Button1, "Vergleichen")
    ControlFocus("", "", $Input1)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Vergleichen()
    If GUICtrlRead($Radio2) = 1 Then ; vergleichen
    If $Fehler = 1 Then
    MsgBox(48, 'ACHTUNG', "Es sind noch keine Seriennummern zum Vergleich hinterlegt!")
    Return
    EndIf
    _vergleich()
    _GUICtrlListViewDeleteAllItems($ListView1)
    _treffer()
    Else ; erfassen
    $SN = GUICtrlRead($Input1)
    If $SN <> "" Then
    _GUICtrlListViewInsertItem($ListView1, -1, $SN)
    IniWrite(@ScriptDir & "\SN10Euro.INI", "serien", "sn" & $lastEntry +1, $SN)
    $lastEntry += 1
    $Fehler = 0
    $new = 1
    GUICtrlSetState($Button3, $GUI_ENABLE)
    Else
    MsgBox(0, 'ACHTUNG!', "Bitte eine Seriennummer für Vergleich eingeben!")
    EndIf
    EndIf
    ControlFocus("", "", $Input1)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func DeleteSN()
    Dim $tmp
    If $new = 1 Then $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
    $tmp = _GUICtrlListViewGetItemText($ListView1)
    If $tmp <> "" And MsgBox(292,"Löschen","Soll die Seriennummer:" & @LF & $tmp & @LF & "wirklich gelöscht werden?") = 6 Then
    For $i = 1 To $arAlleSN[0][0]
    If $arAlleSN[$i][1] = $tmp Then
    $arAlleSN[$i][1] = ""
    ExitLoop
    EndIf
    Next
    FileDelete(@ScriptDir & "\SN10Euro.INI")
    $lastEntry = 0
    For $i = 1 To $arAlleSN[0][0]
    If $arAlleSN[$i][1] <> "" Then
    IniWrite(@ScriptDir & "\SN10Euro.INI", "serien", "sn" & $lastEntry +1, $arAlleSN[$i][1])
    $lastEntry += 1
    $Fehler = 0
    EndIf
    Next
    _GUICtrlListViewDeleteAllItems($ListView1)
    $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
    _ListAllSN()
    If Not FileExists(@ScriptDir & "\SN10Euro.INI") Then GUICtrlSetState($Button3, $GUI_DISABLE)
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _vergleich()
    $SN = GUICtrlRead($Input1)
    If $new = 1 Then $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
    For $i = 1 To $arAlleSN[0][0]
    If $arAlleSN[$i][1] = $SN Then
    $alleRichtig += 1
    _ArrayAdd($arTreffer, $arAlleSN[$i][1] & " / Volltreffer = 100.000 €")
    $arTreffer[0] += 1
    ElseIf StringRight($arAlleSN[$i][1], 3) = StringRight($SN, 3) Then
    $dreiRichtig += 1
    _ArrayAdd($arTreffer, $arAlleSN[$i][1] & " / 3 R = 10.000 €")
    $arTreffer[0] += 1
    ElseIf StringRight($arAlleSN[$i][1], 2) = StringRight($SN, 2) Then
    $zweiRichtig += 1
    _ArrayAdd($arTreffer, $arAlleSN[$i][1] & " / 2 R = 1.000 €")
    $arTreffer[0] += 1
    ElseIf StringRight($arAlleSN[$i][1], 1) = StringRight($SN, 1) Then
    $einRichtig += 1
    _ArrayAdd($arTreffer, $arAlleSN[$i][1] & " / 1 R = 100 €")
    $arTreffer[0] += 1
    EndIf
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _treffer()
    For $i = 1 To $arTreffer[0]
    _GUICtrlListViewInsertItem($ListView1, -1, $arTreffer[$i])
    Next
    If $alleRichtig = 1 Then GUICtrlSetStyle($Label0, $GUI_SS_DEFAULT_LABEL)
    GUICtrlSetState($Button3, $GUI_DISABLE)
    GUICtrlSetStyle($Label1, $GUI_SS_DEFAULT_LABEL)
    GUICtrlSetStyle($Label2, $GUI_SS_DEFAULT_LABEL)
    GUICtrlSetStyle($Label3, $GUI_SS_DEFAULT_LABEL)
    GUICtrlSetData($Input2, $dreiRichtig)
    GUICtrlSetData($Input3, $zweiRichtig)
    GUICtrlSetData($Input4, $einRichtig)
    ReDim $arTreffer[1]
    $arTreffer[0] = 0
    $dreiRichtig = 0
    $zweiRichtig = 0
    $einRichtig = 0
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Ende()
    Exit
    EndFunc

    [/autoit]
  • Abend Leute


    So nun gesellt sich auch mein Tool mit zu den anderen. :party4:


    Vielen Dank an peethebee,th.meger und gtaspider, die mir bei dem ein oder andern Problem geholfen haben.

    Besonderen Dank an AspirinJunkie der mir sehr viel geholfen und dabei auch Grundlagen vermittelt hat


    BIG THX


    Carsten

    Flensburg ist wie Payback - wenn man 18 Punkte hat bekommt man ein Fahrrad.

    • Offizieller Beitrag

    Hi,

    hab grad etwas Langeweile gehabt und meine Lösung noch verfeinert.
    Alternativ kann auch "50.000 für 5" gespielt werden (läuft manchmal hier in der Region).
    Das ganze ist jetzt noch ein bischen optisch aufgebessert, die gewinnträchtigen Scheine werden nach Gewinnstufe sortiert und farblich gekennzeichnet ausgegeben.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GuiListView.au3>
    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    Dim $create = " Erstellt mit AutoIt (https://autoit.de/www.autoit.de)"
    Dim $title1 = "100.000 für 10"&$create, $title2 = "50.000 für 5 "&$create, $spiel = 0 ; 0=100.000->10 , 1=50.000->5
    Dim $arAlleSN, $arTreffer[1][2], $Fehler = 0, $SN
    Dim $alleRichtig = 0, $dreiRichtig = 0, $zweiRichtig = 0, $einRichtig = 0, $lastEntry, $new = 0
    Dim $rot = 0xFF0000, $lightcyan = 0xE0FFFF, $indigo = 0x4B0082, $limegreen = 0x32CD32, $springgreen = 0x00FA9A
    Dim $black = 0x000000, $crimson = 0xDC143C, $lemonchiffon = 0xFFFACD, $pink = 0xFF69B4
    $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
    $arTreffer[0][0] = 0

    [/autoit] [autoit][/autoit] [autoit]

    If @error = 1 Then $Fehler = 1

    [/autoit] [autoit][/autoit] [autoit]

    $Form1 = GUICreate($title1, 636, 384, -1, -1)
    GUISetBkColor($lemonchiffon)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Ende")
    $GroupSystem = GUICtrlCreateGroup("Spielsystem", 17, 8, 607, 40)
    $Radio00 = GUICtrlCreateRadio("50.000 für &5", 104, 21, 140)
    GUICtrlSetOnEvent(-1, "Radio50")
    $Radio01 = GUICtrlCreateRadio("100.000 für &10", 400, 21, 140)
    GUICtrlSetOnEvent(-1, "Radio100")
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $ListView1 = GUICtrlCreateListView("Seriennummern", 17, 59, 353, 305)
    GUICtrlSetColor(-1, $indigo)
    _GUICtrlListViewSetColumnWidth(-1, 0, 349)
    GUICtrlSetBkColor(-1, $lightcyan)
    GUICtrlSetTip(-1, "Per Tastatur wechseln Sie mit:"& @LF & @LF &" Strg+s"& @LF & @LF& " in die Seriennummernliste.")
    $Group0 = GUICtrlCreateGroup(" Modus ", 384, 57, 240, 40)
    $Radio1 = GUICtrlCreateRadio("E&rfassen", 400, 70, 80)
    GUICtrlSetOnEvent(-1, "RadioErfassen")
    $Radio2 = GUICtrlCreateRadio("Ver&gleichen", 520, 70, 80)
    GUICtrlSetOnEvent(-1, "RadioVergleichen")
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group1 = GUICtrlCreateGroup(" Seriennummer ", 384, 99, 240, 57)
    $Input1 = GUICtrlCreateInput("", 395, 121, 220, 21, $ES_UPPERCASE)
    GUICtrlSetColor(-1, $crimson)
    GUICtrlSetBkColor(-1, $lightcyan)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("&Vergleichen", 384, 168, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "Vergleichen")
    $Group2 = GUICtrlCreateGroup(" Ergebnis ", 384, 198, 240, 167)
    $Label0 = GUICtrlCreateLabel("Hauptgewinn", 465, 216, 110, 20)
    GUICtrlSetColor($Label0, $rot)
    GUICtrlSetStyle(-1, $WS_DISABLED)
    $Label1 = GUICtrlCreateLabel("letzte 3 Ziffern richtig", 396, 254, 102, 17)
    GUICtrlSetStyle(-1, $WS_DISABLED)
    $Label2 = GUICtrlCreateLabel("letzte 2 Ziffern richtig", 396, 292, 102, 17)
    GUICtrlSetStyle(-1, $WS_DISABLED)
    $Label3 = GUICtrlCreateLabel("letzte Ziffer richtig", 396, 330, 87, 17)
    GUICtrlSetStyle(-1, $WS_DISABLED)
    $Input2 = GUICtrlCreateInput("", 550, 251, 45, 21, BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY))
    $Input3 = GUICtrlCreateInput("", 550, 289, 45, 21, BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY))
    $Input4 = GUICtrlCreateInput("", 550, 327, 45, 21, BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY))
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button2 = GUICtrlCreateButton("&Ende", 554, 168, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "Ende")
    $Button3 = GUICtrlCreateButton("&Löschen", 469, 168, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "DeleteSN")

    [/autoit] [autoit][/autoit] [autoit]

    If $Fehler = 1 Then
    $lastEntry = 0
    Else
    $lastEntry = StringTrimLeft($arAlleSN[$arAlleSN[0][0]][1], 2)
    _ListAllSN()
    EndIf
    If Not FileExists(@ScriptDir & "\SN10Euro.INI") Then
    GUICtrlSetState($Button3, $GUI_DISABLE)
    Else
    GUICtrlSetState($Button3, $GUI_ENABLE)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)
    ControlFocus("", "", $Input1)
    _SetTextCol()

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("^s", "_StrgS")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _StrgS()
    If _GUICtrlListViewGetItemCount($listView1) > 0 Then
    GUICtrlSetState($ListView1, $GUI_FOCUS)
    _GUICtrlListViewSetItemSelState($listView1, 0, 1, 1)
    Else
    ControlFocus("", "", $Input1)
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _ListAllSN()
    If IsArray($arAlleSN) Then
    For $i = 1 To $arAlleSN[0][0]
    _GUICtrlListViewInsertItem($ListView1, -1, $arAlleSN[$i][1])
    Next
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _SetTextCol()
    ; Spielart
    If GUICtrlRead($Radio00) = 1 Then
    GUICtrlSetColor($Radio00, $limegreen)
    GUICtrlSetColor($Radio01, $black)
    Else
    GUICtrlSetColor($Radio00, $black)
    GUICtrlSetColor($Radio01, $limegreen)
    EndIf
    ; Modus
    If GUICtrlRead($Radio1) = 1 Then
    GUICtrlSetColor($Radio1, $limegreen)
    GUICtrlSetColor($Radio2, $black)
    Else
    GUICtrlSetColor($Radio1, $black)
    GUICtrlSetColor($Radio2, $limegreen)
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Radio50()
    WinSetTitle($Form1, "", $title2)
    $spiel = 1
    _SetTextCol()
    ControlFocus("", "", $Input1)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Radio100()
    WinSetTitle($Form1, "", $title1)
    $spiel = 0
    _SetTextCol()
    ControlFocus("", "", $Input1)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func RadioErfassen()
    _SetTextCol()
    GUICtrlSetData($Button1, "Er&fassen")
    If Not FileExists(@ScriptDir & "\SN10Euro.INI") Then
    GUICtrlSetState($Button3, $GUI_DISABLE)
    Else
    GUICtrlSetState($Button3, $GUI_ENABLE)
    EndIf
    GUICtrlSetStyle($Label0, $WS_DISABLED)
    GUICtrlSetFont($Label0, 9, 400)
    GUICtrlSetStyle($Label1, $WS_DISABLED)
    GUICtrlSetStyle($Label2, $WS_DISABLED)
    GUICtrlSetStyle($Label3, $WS_DISABLED)
    _GUICtrlListViewDeleteAllItems($ListView1)
    If $Fehler = 0 Then _ListAllSN()
    ControlFocus("", "", $Input1)
    GUICtrlSetData($Input2, "")
    GUICtrlSetData($Input3, "")
    GUICtrlSetData($Input4, "")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func RadioVergleichen()
    _SetTextCol()
    GUICtrlSetData($Button1, "&Vergleichen")
    ControlFocus("", "", $Input1)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Vergleichen()
    If GUICtrlRead($Radio2) = 1 Then ; vergleichen
    If $Fehler = 1 Then
    MsgBox(48, 'ACHTUNG', "Es sind noch keine Seriennummern zum Vergleich hinterlegt!")
    Return
    EndIf
    If GUICtrlRead($Input1) = "" Then
    MsgBox(48, 'ACHTUNG', "Bitte eine Seriennummer eingeben!")
    Return
    EndIf
    _vergleich()
    _GUICtrlListViewDeleteAllItems($ListView1)
    _treffer()
    $alleRichtig = 0
    Else ; erfassen
    $SN = GUICtrlRead($Input1)
    If $SN <> "" Then
    _GUICtrlListViewInsertItem($ListView1, -1, $SN)
    IniWrite(@ScriptDir & "\SN10Euro.INI", "serien", "sn" & $lastEntry +1, $SN)
    $lastEntry += 1
    $Fehler = 0
    $new = 1
    GUICtrlSetState($Button3, $GUI_ENABLE)
    Else
    MsgBox(0, 'ACHTUNG!', "Bitte eine Seriennummer für Vergleich eingeben!")
    EndIf
    EndIf
    ControlFocus("", "", $Input1)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func DeleteSN()
    Dim $tmp
    If $new = 1 Then $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
    $tmp = _GUICtrlListViewGetItemText($ListView1)
    If $tmp <> "" And MsgBox(292,"Löschen","Soll die Seriennummer:" & @LF & $tmp & @LF & "wirklich gelöscht werden?") = 6 Then
    For $i = 1 To $arAlleSN[0][0]
    If $arAlleSN[$i][1] = $tmp Then
    $arAlleSN[$i][1] = ""
    ExitLoop
    EndIf
    Next
    FileDelete(@ScriptDir & "\SN10Euro.INI")
    $lastEntry = 0
    For $i = 1 To $arAlleSN[0][0]
    If $arAlleSN[$i][1] <> "" Then
    IniWrite(@ScriptDir & "\SN10Euro.INI", "serien", "sn" & $lastEntry +1, $arAlleSN[$i][1])
    $lastEntry += 1
    $Fehler = 0
    EndIf
    Next
    _GUICtrlListViewDeleteAllItems($ListView1)
    $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
    _ListAllSN()
    If Not FileExists(@ScriptDir & "\SN10Euro.INI") Then GUICtrlSetState($Button3, $GUI_DISABLE)
    EndIf
    ControlFocus("", "", $Input1)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _vergleich()
    Dim $txtFull1 = " / Volltreffer = 100.000 €", $txtFull2 = " / Volltreffer = 50.000 €"
    Dim $txt3R1 = " / 3 R = 10.000 €", $txt3R2 = " / 3 R = 5.000 €"
    Dim $txt2R1 = " / 2 R = 1.000 €", $txt2R2 = " / 2 R = 500 €"
    Dim $txt1R1 = " / 1 R = 100 €", $txt1R2 = " / 1 R = 50 €"
    $SN = GUICtrlRead($Input1)
    If $new = 1 Then $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
    For $i = 1 To $arAlleSN[0][0]
    If $arAlleSN[$i][1] = $SN Then
    $alleRichtig += 1
    If $spiel = 0 Then
    $n = UBound($arTreffer,1)+1
    ReDim $arTreffer[$n][2]
    $arTreffer[$n-1][0] = $arAlleSN[$i][1] & $txtFull1
    $arTreffer[$n-1][1] = 1
    Else
    $n = UBound($arTreffer,1)+1
    ReDim $arTreffer[$n][2]
    $arTreffer[$n-1][0] = $arAlleSN[$i][1] & $txtFull2
    $arTreffer[$n-1][1] = 1
    EndIf
    $arTreffer[0][0] += 1
    ElseIf StringRight($arAlleSN[$i][1], 3) = StringRight($SN, 3) Then
    $dreiRichtig += 1
    If $spiel = 0 Then
    $n = UBound($arTreffer,1)+1
    ReDim $arTreffer[$n][2]
    $arTreffer[$n-1][0] = $arAlleSN[$i][1] & $txt3R1
    $arTreffer[$n-1][1] = 2
    Else
    $n = UBound($arTreffer,1)+1
    ReDim $arTreffer[$n][2]
    $arTreffer[$n-1][0] = $arAlleSN[$i][1] & $txt3R2
    $arTreffer[$n-1][1] = 2
    EndIf
    $arTreffer[0][0] += 1
    ElseIf StringRight($arAlleSN[$i][1], 2) = StringRight($SN, 2) Then
    $zweiRichtig += 1
    If $spiel = 0 Then
    $n = UBound($arTreffer,1)+1
    ReDim $arTreffer[$n][2]
    $arTreffer[$n-1][0] = $arAlleSN[$i][1] & $txt2R1
    $arTreffer[$n-1][1] = 3
    Else
    $n = UBound($arTreffer,1)+1
    ReDim $arTreffer[$n][2]
    $arTreffer[$n-1][0] = $arAlleSN[$i][1] & $txt2R2
    $arTreffer[$n-1][1] = 3
    EndIf
    $arTreffer[0][0] += 1
    ElseIf StringRight($arAlleSN[$i][1], 1) = StringRight($SN, 1) Then
    $einRichtig += 1
    If $spiel = 0 Then
    $n = UBound($arTreffer,1)+1
    ReDim $arTreffer[$n][2]
    $arTreffer[$n-1][0] = $arAlleSN[$i][1] & $txt1R1
    $arTreffer[$n-1][1] = 4
    Else
    $n = UBound($arTreffer,1)+1
    ReDim $arTreffer[$n][2]
    $arTreffer[$n-1][0] = $arAlleSN[$i][1] & $txt1R2
    $arTreffer[$n-1][1] = 4
    EndIf
    $arTreffer[0][0] += 1
    EndIf
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _treffer()
    _ArraySort($arTreffer, 0,1,0,2,1)
    For $i = 1 To $arTreffer[0][0]
    $item = GUICtrlCreateListViewItem($arTreffer[$i][0], $ListView1)
    Switch $arTreffer[$i][1]
    Case 1
    GUICtrlSetBkColor($item, $pink)
    Case 2
    GUICtrlSetBkColor($item, $limegreen)
    Case 3
    GUICtrlSetBkColor($item, $lemonchiffon)
    Case 4
    GUICtrlSetBkColor($item, $springgreen)
    EndSwitch
    Next
    If $alleRichtig = 1 Then
    GUICtrlSetStyle($Label0, $GUI_SS_DEFAULT_LABEL)
    GUICtrlSetFont($Label0, 12, 430)
    EndIf
    GUICtrlSetState($Button3, $GUI_DISABLE)
    GUICtrlSetStyle($Label1, $GUI_SS_DEFAULT_LABEL)
    GUICtrlSetStyle($Label2, $GUI_SS_DEFAULT_LABEL)
    GUICtrlSetStyle($Label3, $GUI_SS_DEFAULT_LABEL)
    GUICtrlSetData($Input2, $dreiRichtig)
    GUICtrlSetData($Input3, $zweiRichtig)
    GUICtrlSetData($Input4, $einRichtig)
    ReDim $arTreffer[1][2]
    $arTreffer[0][0] = 0
    $dreiRichtig = 0
    $zweiRichtig = 0
    $einRichtig = 0
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Ende()
    HotKeySet("^s")
    Exit
    EndFunc

    [/autoit]

    EDIT:
    Hab meinen Fehler entdeckt, Sortierung funktioniert nun auch.