Heute darf ich euch meinen Vocabtrainer präsentieren.
Man kann Vokabellisten inklusive Eselsbrücken erstellen und sich diese nochmals anschauen. Vokabeltests gibts natürlich auch.
Da ich selbst alle 2 Wochen etwa nen Vokabeltest in der Schule schreib, und dazu Unmengen an Vokabeln lernen muss (meistens am Tag davor,wenn ich um 18.00 heimkomm :)) erschien mir sowas ziemlich praktisch.
Das Skript is noch nicht 100% fertig. Es sind noch kleinere Fehler bei den Vokabeltests(arraymäßig) und ein gescheites Design hab ich auch noch nicht gemacht. Edit: Eine gute Stelle für das Erscheinen der Eselsbrücken hab ich noch nicht gefunde.Hier die Source:
Spoiler anzeigen
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_outfile=Vocabtrainer.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
#include<comboconstants.au3>
#include<array.au3>
#include<guilistview.au3>
#include<file.au3>
Global $counter = 0
Local $ar[14]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]$Form1_1 = GUICreate("Vocabtrainer", 756, 604, 185, 119)
$TreeView1 = GUICtrlCreateTreeView(1, 1, 172, 601)
$TreeView1_0 = GUICtrlCreateTreeViewItem("Vokabellisten", $TreeView1)
$TreeView1_1 = GUICtrlCreateTreeViewItem("Sprachen", $TreeView1_0)
$TreeView1_2 = GUICtrlCreateTreeViewItem("Englisch", $TreeView1_1)
$TreeView1_3 = GUICtrlCreateTreeViewItem("Französisch", $TreeView1_1)
$TreeView1_4 = GUICtrlCreateTreeViewItem("Latein", $TreeView1_1)
$TreeView1_5 = GUICtrlCreateTreeViewItem("Italienisch", $TreeView1_1)
$TreeView1_6 = GUICtrlCreateTreeViewItem("Spanisch", $TreeView1_1)
$TreeView1_7 = GUICtrlCreateTreeViewItem("Neue Vokabelliste", $TreeView1)
$ar[0] = GUICtrlCreateListView("Fremdwort|Übersetzung|Eselsbrücke u.a.", 173, 44, 567, 385)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 200)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 200)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 160)
$ar[1] = GUICtrlCreateLabel(" Neue Vokabelliste", 173, 2, 232, 36)
GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
$ar[2] = GUICtrlCreateInput("Fremdwort", 189, 468, 210, 21)
$ar[3] = GUICtrlCreateInput("Input1", 391, 465, 1, 21)
$ar[4] = GUICtrlCreateInput("Übersetzung", 401, 468, 189, 21)
$ar[5] = GUICtrlCreateEdit("Tipp", 189, 496, 402, 67)
GUICtrlSetLimit(-1, 100)
GUICtrlSetData(-1, StringFormat("Eselsbrücke\r\n\r\n\r\n\r\n\r\n\r\n"))
$ar[6] = GUICtrlCreateButton("Vokabel hinzufügen", 189, 565, 195, 27, $WS_GROUP)
$ar[7] = GUICtrlCreateButton("Editor verlassen", 396, 565, 195, 27, $WS_GROUP)
$ar[8] = GUICtrlCreateCombo("", 189, 441, 402, 25, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, "Englisch|Französisch|Latein|Italienisch|Spanisch", 0)
$ar[9] = GUICtrlCreateListView("Vokabellisten", 173, 44, 567, 385)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 560)
$ar[12] = GUICtrlCreateLabel(" ", 173, 2, 232, 36)
$ar[10] = GUICtrlCreateButton("Vokabeln noch mal anschauen", 180, 565, 195, 27, $WS_GROUP)
$ar[11] = GUICtrlCreateButton("Vokabeltest", 396, 565, 195, 27, $WS_GROUP)
For $a = 0 To 11
GUICtrlSetState($ar[$a], $gui_hide)
Next
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $ar[1]
GUICtrlSetState($TreeView1, $gui_disable)
Case $TreeView1_7
_show()
For $i = 9 To 12
GUICtrlSetState($ar[$i], $gui_hide)
Next
GUICtrlSetState($TreeView1, $gui_disable)
Case $TreeView1_0
_hide()
Case $TreeView1_1
_hide()
Case $TreeView1_2
For $i = 9 To 12
GUICtrlSetState($ar[$i], $gui_show)
Next
GUICtrlSetData($ar[12], "Englisch")
GUICtrlSetFont($ar[12], 20, 400, 0, "MS Sans Serif")
_hide()
_GUICtrlListView_DeleteAllItems($ar[9])
$set = _FileListToArray("F:\Autoit-Projekte\Vocabtrainer\Englisch")
For $i = 1 To $set[0]
GUICtrlCreateListViewItem($set[$i], $ar[9])
Next
$englisch = True
$franzosisch = False
$latein = False
$italienisch = False
$spanisch = False
Case $TreeView1_3
For $i = 9 To 12
GUICtrlSetState($ar[$i], $gui_show)
Next
GUICtrlSetData($ar[12], "Französisch")
GUICtrlSetFont($ar[12], 20, 400, 0, "MS Sans Serif")
_hide()
_GUICtrlListView_DeleteAllItems($ar[9])
$set = _FileListToArray("F:\Autoit-Projekte\Vocabtrainer\Französisch")
For $i = 1 To $set[0]
GUICtrlCreateListViewItem($set[$i], $ar[9])
Next
$franzosisch = True
$englisch = False
$latein = False
$italienisch = False
$spanisch = False
Case $TreeView1_4
For $i = 9 To 12
GUICtrlSetState($ar[$i], $gui_show)
Next
GUICtrlSetData($ar[12], "Latein")
GUICtrlSetFont($ar[12], 20, 400, 0, "MS Sans Serif")
_hide()
_GUICtrlListView_DeleteAllItems($ar[9])
$set = _FileListToArray("F:\Autoit-Projekte\Vocabtrainer\Latein")
For $i = 1 To $set[0]
GUICtrlCreateListViewItem($set[$i], $ar[9])
Next
$franzosisch = False
$englisch = False
$latein = True
$italienisch = False
$spanisch = False
Case $TreeView1_5
For $i = 9 To 12
GUICtrlSetState($ar[$i], $gui_show)
Next
GUICtrlSetData($ar[12], "Italienisch")
GUICtrlSetFont($ar[12], 20, 400, 0, "MS Sans Serif")
_hide()
_GUICtrlListView_DeleteAllItems($ar[9])
$set = _FileListToArray("F:\Autoit-Projekte\Vocabtrainer\Italienisch")
For $i = 1 To $set[0]
GUICtrlCreateListViewItem($set[$i], $ar[9])
Next
$franzosisch = False
$englisch = False
$latein = False
$italienisch = True
$spanisch = False
Case $TreeView1_6
For $i = 9 To 12
GUICtrlSetState($ar[$i], $gui_show)
Next
GUICtrlSetData($ar[12], "Spanisch")
GUICtrlSetFont($ar[12], 20, 400, 0, "MS Sans Serif")
_GUICtrlListView_DeleteAllItems($ar[9])
_hide()
$set = _FileListToArray("F:\Autoit-Projekte\Vocabtrainer\Spanisch")
For $i = 1 To $set[0]
GUICtrlCreateListViewItem($set[$i], $ar[9])
Next
$franzosisch = False
$englisch = False
$latein = False
$italienisch = False
$spanisch = True
Case $ar[7]
$items = _GUICtrlListView_GetItemCount($ar[0])
For $items2 = 0 To $items
$text = _GUICtrlListView_GetItemText($ar[0], $items2, 0)
$text2 = _GUICtrlListView_GetItemText($ar[0], $items2, 1)
$text3 = _GUICtrlListView_GetItemText($ar[0], $items2, 2)
If GUICtrlRead($ar[8]) = "Englisch" Then
IniWrite(@ScriptDir & "\Englisch\" & @MDAY & "." & @MON & "." & @YEAR & ".ini", $text, "Übersetzung", $text2)
IniWrite(@ScriptDir & "\Englisch\" & @MDAY & "." & @MON & "." & @YEAR & ".ini", $text, "Eselsbrücke", $text3)
ConsoleWrite(@ScriptDir)
ElseIf GUICtrlRead($ar[8]) = "Französisch" Then
IniWrite(@ScriptDir & "\Französisch\" & @MDAY & "." & @MON & "." & @YEAR & ".ini", $text, "Übersetzung", $text2)
IniWrite(@ScriptDir & "\Französisch\" & @MDAY & "." & @MON & "." & @YEAR & ".ini", $text, "Eselsbrücke", $text3)
ElseIf GUICtrlRead($ar[8]) = "Latein" Then
IniWrite(@ScriptDir & "\Latein\" & @MDAY & "." & @MON & "." & @YEAR & ".ini", $text, "Übersetzung", $text2)
IniWrite(@ScriptDir & "\Latein\" & @MDAY & "." & @MON & "." & @YEAR & ".ini", $text, "Eselsbrücke", $text3)
ElseIf GUICtrlRead($ar[8]) = "Italienisch" Then
IniWrite(@ScriptDir & "\Italienisch\" & @MDAY & "." & @MON & "." & @YEAR & ".ini", $text, "Übersetzung", $text2)
IniWrite(@ScriptDir & "\Italienisch\" & @MDAY & "." & @MON & "." & @YEAR & ".ini", $text, "Eselsbrücke", $text3)
ElseIf GUICtrlRead($ar[8]) = "Spanisch" Then
IniWrite(@ScriptDir & "\Spanisch\" & @MDAY & "." & @MON & "." & @YEAR & ".ini", $text, "Übersetzung", $text2)
IniWrite(@ScriptDir & "\Spanisch\" & @MDAY & "." & @MON & "." & @YEAR & ".ini", $text, "Eselsbrücke", $text3)
EndIf
Next
_hide()
_GUICtrlListView_DeleteAllItems($ar[0])
GUICtrlSetState($TreeView1, $gui_enable)
Case $ar[2]
If GUICtrlRead($ar[2]) = "" Or GUICtrlRead($ar[2]) = "Fremdwort" Then MsgBox(0, "Fehler", "Ungültiger Eintrag")
Case $ar[4]
If GUICtrlRead($ar[4]) = "" Or GUICtrlRead($ar[4]) = "Übersetzung" Then MsgBox(0, "Fehler", "Ungültiger Eintrag")
Case $ar[8]
For $a = 0 To 7
GUICtrlSetState($ar[$a], $gui_enable)
Next
GUICtrlSetState($ar[8], $gui_disable)
Case $ar[6]
GUICtrlCreateListViewItem(GUICtrlRead($ar[2]) & "|" & GUICtrlRead($ar[4]) & "|" & GUICtrlRead($ar[5]), $ar[0])
Case $ar[10]
$indicestext = _GUICtrlListView_GetItemTextString($ar[9], -1)
Select
Case $englisch = True
$adresse = @ScriptDir & "\englisch\" & $indicestext
$sectionnames = IniReadSectionNames($adresse)
For $i = 1 to (_ArrayMax($sectionnames) - 1)
MsgBox(0, "Vokabeln vom" & $indicestext, $sectionnames[$i] & "--" & IniRead($adresse, $sectionnames[$i], "Übersetzung", "") & @CRLF & IniRead($adresse, $sectionnames[$i], "Eselsbrücke", ""))
Next
Case $franzosisch = True
$adresse = @ScriptDir & "\franzosisch\" & $indicestext
$sectionnames = IniReadSectionNames($adresse)
For $i = 1 to (_ArrayMax($sectionnames) - 1)
MsgBox(0, "Vokabeln vom" & $indicestext, $sectionnames[$i] & "--" & IniRead($adresse, $sectionnames[$i], "Übersetzung", "") & @CRLF & IniRead($adresse, $sectionnames[$i], "Eselsbrücke", ""))
Next
Case $latein = True
$adresse = @ScriptDir & "\latein\" & $indicestext
$sectionnames = IniReadSectionNames($adresse)
For $i = 1 to (_ArrayMax($sectionnames) - 1)
MsgBox(0, "Vokabeln vom" & $indicestext, $sectionnames[$i] & "--" & IniRead($adresse, $sectionnames[$i], "Übersetzung", "") & @CRLF & IniRead($adresse, $sectionnames[$i], "Eselsbrücke", ""))
Next
Case $italienisch = True
$adresse = @ScriptDir & "\italienisch\" & $indicestext
$sectionnames = IniReadSectionNames($adresse)
For $i = 1 to (_ArrayMax($sectionnames) - 1)
MsgBox(0, "Vokabeln vom" & $indicestext, $sectionnames[$i] & "--" & IniRead($adresse, $sectionnames[$i], "Übersetzung", "") & @CRLF & IniRead($adresse, $sectionnames[$i], "Eselsbrücke", ""))
Next
Case $spanisch = True
$adresse = @ScriptDir & "\spanisch\" & $indicestext
$sectionnames = IniReadSectionNames($adresse)
For $i = 1 to (_ArrayMax($sectionnames) - 1)
MsgBox(0, "Vokabeln vom" & $indicestext, $sectionnames[$i] & "--" & IniRead($adresse, $sectionnames[$i], "Übersetzung", "") & @CRLF & IniRead($adresse, $sectionnames[$i], "Eselsbrücke", ""))
Next
EndSelect
Case $ar[11]
$indicestext = _GUICtrlListView_GetItemTextString($ar[9], -1)
Select
Case $englisch = True
$adresse = @ScriptDir & "\englisch\" & $indicestext
$sectionnames = IniReadSectionNames($adresse)
If IsArray($sectionnames) Then
For $i = 1 to ($sectionnames[0] - 1)
$eingabe = InputBox("Vokabeltest" & $indicestext, "Bitte übersetze:" & $sectionnames[$i], "", " M", "", "", "", "", 18)
If @error = 1 Then $counter -= 1
If $eingabe = IniRead($adresse, $sectionnames[$i], "Übersetzung", "") Then
$counter = $counter + 1
Else
Beep(500, 500)
EndIf
Next
MsgBox(0, "Ergebnis", "Von" & $sectionnames[0] - 1 & " Worten hast du " & $counter & " richtig übersetzt")
Else
MsgBox(0, "Fehler", "Bitte wähle eine Vokabelliste")
EndIf
$counter = 0
Case $franzosisch = True
$adresse = @ScriptDir & "\französisch\" & $indicestext
$sectionnames = IniReadSectionNames($adresse)
If IsArray($sectionnames) Then
For $i = 1 to ($sectionnames[0] - 1)
[/autoit] [autoit][/autoit] [autoit]If @error = 1 Then $counter -= 1
$eingabe = InputBox("Vokabeltest" & $indicestext, "Bitte übersetze:" & $sectionnames[$i], "", " M", "", "", "", "", 18)
If $eingabe = IniRead($adresse, $sectionnames[$i], "Übersetzung", "") Then
$counter += 1
Else
Beep(500, 500)
EndIf
Next
MsgBox(0, "Ergebnis", "Von" & $sectionnames[0] - 1 & " Worten hast du " & $counter & " richtig übersetzt")
$counter = 0
Else
MsgBox(0, "Fehler", "Bitte wähle eine Vokabelliste")
EndIf
Case $latein = True
$adresse = @ScriptDir & "\latein\" & $indicestext
$sectionnames = IniReadSectionNames($adresse)
If IsArray($sectionnames) Then
For $i = 1 to ($sectionnames[0] - 1)
If @error = 1 Then $counter -= 1
$eingabe = InputBox("Vokabeltest" & $indicestext, "Bitte übersetze:" & $sectionnames[$i], "", " M", "", "", "", "", 18)
If $eingabe = IniRead($adresse, $sectionnames[$i], "Übersetzung", "") Then
$counter += 1
Else
Beep(500, 500)
EndIf
Next
MsgBox(0, "Ergebnis", "Von" & $sectionnames[0] - 1 & "Worten hast du " & $counter & " richtig übersetzt")
$counter = 0
Else
MsgBox(0, "Fehler", "Bitte wähle eine Vokabelliste")
EndIf
Case $spanisch = True
$adresse = @ScriptDir & "\spanisch\" & $indicestext
$sectionnames = IniReadSectionNames($adresse)
If IsArray($sectionnames) Then
For $i = 1 to ($sectionnames[0] - 1)
If @error = 1 Then $counter -= 1
$eingabe = InputBox("Vokabeltest" & $indicestext, "Bitte übersetze:" & $sectionnames[$i], "", " M", "", "", "", "", 18)
If $eingabe = IniRead($adresse, $sectionnames[$i], "Übersetzung", "") Then
$counter += 1
Else
Beep(500, 500)
EndIf
Next
MsgBox(0, "Ergebnis", "Von " & $sectionnames[0] - 1 & " Worten hast du " & $counter & " richtig übersetzt")
$counter = 0
Else
MsgBox(0, "Fehler", "Bitte wähle eine Vokabelliste")
EndIf
Case $italienisch = True
$adresse = @ScriptDir & "\italienisch\" & $indicestext
$sectionnames = IniReadSectionNames($adresse)
If IsArray($sectionnames) Then
For $i = 1 to ($sectionnames[0] - 1)
If @error = 1 Then $counter -= 1
$eingabe = InputBox("Vokabeltest" & $indicestext, "Bitte übersetze:" & $sectionnames[$i], "", " M", "", "", "", "", 18)
If $eingabe = IniRead($adresse, $sectionnames[$i], "Übersetzung", "") Then
$counter += 1
Else
Beep(500, 500)
EndIf
[/autoit] [autoit][/autoit] [autoit]Next
MsgBox(0, "Ergebnis", "Von" & $sectionnames[0] - 1 & " Worten hast du " & $counter & " richtig übersetzt")
$counter = 0
Else
MsgBox(0, "Fehler", "Bitte wähle eine Vokabelliste")
EndIf
EndSelect
EndSwitch
WEnd
Func _hide()
For $a = 0 To 8
GUICtrlSetState($ar[$a], $gui_hide)
Next
EndFunc ;==>_hide
Func _show()
For $a = 0 To 8
GUICtrlSetState($ar[$a], $gui_show)
Next
For $a = 0 To 7
GUICtrlSetState($ar[$a], $gui_disable)
Next
GUICtrlSetState($ar[8], $gui_enable)
EndFunc ;==>_show
Im Anhang ist das Programm mit der benötigten Ordnerstruktur.
Edit:1 Funktioniert nun ziemlich gut. Eselsbrücken sind noch nicht eingebaut.
Edit2: Omg, vergessen was zu ändern.