Programm zum Vokabeln abfragen

  • Hallo,
    ich hab mir so ein paar gedanken gemacht ein Programm zu schrieben, dass automatisch Vokabeln einer Liste zB. eine Editordatei ausliest und diese dann abfragt.
    Die Vokabeln die richtig beantwortet wurden kommen danach seltener dran und die, die häufig falsch beantwortet wurden kommen öfter dran und diese Daten sollte man dann ebenfalls in einem Textdokument speichern können.

    Aber mir fehlt die reinste Idee mit welchen Befehlten ich das machen soll :/

  • Moin,
    was genau fehlt dir den ne idee wie du das ganze script realisieren sollst oder nur einzelne funktionen?

  • Moin,
    was genau fehlt dir den ne idee wie du das ganze script realisieren sollst oder nur einzelne funktionen?

    Eine Idee
    Also wie ich etwas aus einem Editor auslese weiß ich, wie ich GUis erstelle und ihnen funktionen gebe weiß ich auch.
    Aber ich weiß nicht wie ich das mit dem abfragen machen soll oder wie ich das mit dem häufigkeitsfaktor machen soll. Also je öfter ich richtig hab umso weniger kommt das wort vor. Aber wie soll ich das machen :/

  • Haste aber glück das mir grad langweilig war^^

    hab das script nochmal überarbeitet jetzt funktioniert es...



    Vokabel.ini

    PHP
    [Vokabel]
    transfer=übertragung
    rubber=gummi
    one=eins
    
    
    [Vokabel_Richtig]
    connection=verbindung
    two=zwei


    hoffe das hilft dir weiter^^

    2 Mal editiert, zuletzt von Timme (10. September 2011 um 23:06) aus folgendem Grund: hab ich doch die ini vergessen^^

  • War nur ein kleiner Fehler drin, der aus anderen Programmiersprachen stammt ;)
    Hab noch ein paar kleine Dinge geändert.
    Jetzt sollte es funktionieren:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <Array.au3>
    Global $i = "1"
    Global $func = "1"

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

    $MainGui = GUICreate("Vokabeltester", 300, 200)
    $VokAusgabe = GUICtrlCreateEdit("", 5, 0, 290, 80)
    $VokAbfrage = GUICtrlCreateEdit("", 5, 85, 290, 80)
    $Ok = GUICtrlCreateButton("Start", 110, 170, 80, 25)
    GUISetState()

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

    While 1

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

    Sleep(5)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Ok
    If ($func = "1") Then
    _Vokabel_einlesen()
    If Not @error Then
    _StartVokabel()
    EndIf
    ElseIf ($func = "2") Then
    _Check()
    EndIf

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

    EndSwitch
    WEnd

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

    Func _Vokabel_einlesen()

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

    If FileExists(@ScriptDir & "\Vokabel.ini") <> 0 Then
    Global $VokArray = IniReadSection("Vokabel.ini", "Vokabel")
    If IsArray($VokArray) Then
    Global $VokRows = $VokArray[0][0]
    EndIf

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

    Global $Vok_R_Array = IniReadSection("Vokabel.ini", "Vokabel_Richtig")
    If IsArray($Vok_R_Array) Then
    Global $Vok_R_Rows = $Vok_R_Array[0][0]
    EndIf
    Else
    GUICtrlSetData($VokAusgabe, "Vokabel.ini konnte nicht gefunden werden")
    SetError(1)
    EndIf

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

    EndFunc ;==>_Vokabel_einlesen

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

    Func _StartVokabel()
    GUICtrlSetData($VokAusgabe, "")
    GUICtrlSetData($VokAbfrage, "")
    If (GUICtrlRead($Ok) = "Start") Then
    GUICtrlSetData($Ok, "Überprüfen")
    EndIf
    If (GUICtrlRead($Ok) = "Next") Then
    GUICtrlSetData($Ok, "Überprüfen")
    EndIf

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

    If ($i <= $VokRows) Then
    ;MsgBox(0,"",$VokRows)
    Global $Norm = 1
    Global $Key = Random(1, $VokRows)
    GUICtrlSetData($VokAusgabe, $VokArray[$Key][0])
    $i = $i + 1
    Else
    Global $Norm = 2
    Global $Key = Random(1, $Vok_R_Rows)
    GUICtrlSetData($VokAusgabe, $Vok_R_Array[$Key][0])
    ;_ArrayDisplay($Vok_R_Array)
    $i = 1
    EndIf

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

    $func = "2"

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

    EndFunc ;==>_StartVokabel

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

    Func _Check()

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

    If ($Norm = 1) Then
    If (GUICtrlRead($VokAbfrage) = $VokArray[$Key][1]) Then
    IniWrite("Vokabel.ini", "Vokabel_Richtig", $VokArray[$Key][0], $VokArray[$Key][1])
    IniDelete("Vokabel.ini", "Vokabel", $VokArray[$Key][0])
    GUICtrlSetData($VokAusgabe, "")
    GUICtrlSetData($VokAbfrage, "Richtig")
    GUICtrlSetData($Ok, "Next")
    Else
    GUICtrlSetData($VokAusgabe, "")
    GUICtrlSetData($VokAbfrage, "Falsch")
    GUICtrlSetData($Ok, "Next")
    EndIf

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

    ElseIf ($Norm = 2) Then
    If (GUICtrlRead($VokAbfrage) = $Vok_R_Array[$Key][1]) Then
    GUICtrlSetData($VokAusgabe, "")
    GUICtrlSetData($VokAbfrage, "Richtig")
    GUICtrlSetData($Ok, "Next")
    Else
    GUICtrlSetData($VokAusgabe, "")
    GUICtrlSetData($VokAbfrage, "Falsch")
    GUICtrlSetData($Ok, "Next")
    EndIf
    EndIf

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

    $func = "1"
    EndFunc ;==>_Check

    [/autoit]

    Was du noch ausbauen musst ist z.B. der Ort, an dem sich die Datei mit den Vokabeln befindet. Außerdem wird die garantiert nicht in dem Format sein?

    Weiterhin viel Erfolg,
    Aquaplant

  • Sorry Leute, aber ich komme hier überhauptnicht weiter.
    Am einfachsten wäre jetzt erstmal folgende Frage:

    Ich will jetzt es erstmal so machen, dass sich eine MsgBox öffnen wo dann zB. steht "Was heißt 'Hallo' auf englisch?"
    Das wäre ja dann einfach

    [autoit]

    MsgBox (0, "Vokabeltraining", "Was heißt Hallo auf englisch?")

    [/autoit]


    Dann sollte ich das wort irgendwo reinschreiben können in einem Input mit dem namen $input01, aber wo?
    Danach soll er einfach nur noch abchecken:

    [autoit]

    If $input01 = "hello"
    Then
    MsgBox (0, "Lösung", "Deine Antwort war richtig!")
    Else
    MsgBox (0, "Leider falsch!", "Die richtige Lösung lautet: hello")
    EndIf

    [/autoit]
  • hier deine einfache variante
    ps die variante mit der ini ist besser

    [autoit]


    #Region - Timestamp
    ;2011-09-11 18:56:32
    #EndRegion
    $value = InputBox("Vokabeltraining", "Was heißt Hallo auf englisch?", "", " M")
    IF $value = "HELLO" Then
    MsgBox(0,"eingabe","richtig")
    Else
    MsgBox(0,"eingabe","falsch")
    EndIf

    [/autoit]
  • Ja weiß ich, aber ich brauch ein kleines einfaches script, was ich nun erweitern kann ;)
    Danke! Darauf kann ich weiter ausbauen, nun weiß ich schon den rest :)