wie programmiert man ein Vok-Trainer [AutoIt]?

09/09/2010 19:01 flow_getter#1
wie programmiert man ein Vok-Trainer [AutoIt]?Ich suche einen Programmierer der mir ein Vok-Trainer Programmiert und schrittweise erklärt wozu die einzelnen befehle gut sind biete 50e-gold
(sollte Gui haben)
Edit:Vok-Trainer=Vokabel-Trainer,es sollte wirklich nur AutoIt sein weil ich eigentlich nicht mehr als AutoIt lernen will
09/09/2010 19:12 v0lle#2
Meinst du mit Vok - Vokabel , also ein Vokabel Trainer?
09/09/2010 19:16 flow_getter#3
Ja
09/09/2010 19:27 v0lle#4
Da müsste man vielleicht irgendwo eine Quelle mit Deutsch - Englischen Vokabeln herkriegen oder bzw welche Sprache du lern willst
09/09/2010 19:34 Madd Eye#5
Muss es autoit sein?
mit anderen Sprachen geht das viel einfacher ^^
09/09/2010 19:37 flow_getter#6
Die Vokabeln sind im Grunde egal ich möchte die Befehle lernen um einen richtigen Vokabel-Trainer zu programmieren mit AutoIt.
Mein Code sieht bisher so aus:
PHP Code:
$input=InputBox ("Fenster Frage","Was für eine Vokabel willst du wissen?Bitte nur klein-schreiben,ihr braucht nicht artikel dazuzuschreiben")
If 
$input="abbiegen"Then
MsgBox 
(0,"VokabelFenster","tourner")
EndIf
If 
$input="Abend" Then
MsgBox
(0,"VokabelFenster","un soir")
EndIf
If 
$input="abends"Then
MsgBox
(0,"VokabelFenster","le soir")
EndIf
If 
$input="aber"Then
MsgBox
(0,"VokabelFenster","mais")
EndIf
If 
$input="Abfahrt,Aufbruch"Then
MsgBox
(0,"VokabelFenster","le départ")
EndIf
If 
$input="achten"Then
    MsgBox
(0,"VokabelFenster","respecter")
EndIf
If 
$input="etw.achten"Then
    MsgBox
(0,"VokabelFenster","respecter")
EndIf 
09/09/2010 19:49 MoepMeep#7
Und das für sämtliche Vokabeln? Na, dann viel spaß ;)
Speicher sämtliche vokabeln+übersetzung in eine Textdatei ab. Such dann das eingegebene Wort ;)

Mit Get bzw WritePrivateProfileString wär das ganze relativ einfach lösbar (ja, ich mag die funktion :p ).
Alternativ könntest du deine Vokabeln in einer Datenbank abspeichern und per SQL auslesen.
Eigentlich reicht auch irgendeine funktion, die es dir erlaubt, textdateien zu durchsuchen ;)

Inwiefern das ganze in AutoIt sinnvoll möglich ist, bleibt fraglich ;)
09/09/2010 22:15 Madd Eye#8
Wie schonmal gesagt nimm ne Datenbank und so wie ich das verstehe ist das kein Vokabeltrainer sondern ein Übersetzungsprogramm
09/09/2010 22:19 Goxide#9
Also ich hab mir einen mit Java programmiert. Realisiert habe ich ihn so (denke so könnte ich es auch mit Autoit gehen):

Ich habe die Vokabeln in einer Textdatei gespeichert. Sah so aus:

Fremdsprache|Deutsch

Dann habe ich Linie 1 ausgelesen und anhand dieses Striches den String (die Zeichenkette) geteilt, die erste Hälfte auf einem Label ausgegeben und mithilfe eines Buttons den Inhalt eines Eingabefeldes mit dem zweiten Teil des String verglichen.


Autoit Befehle die dur dir anschauen könntest:
FileOpenDialog(title)
_FileCountLines(file) aus der File.au3
FileReadLine(filename,linie)
StringSplit(string,splitzeichen)

Statistiken kannst du dann via IniWrite machen.
Hoffe ich konnte dir helfen!
09/09/2010 22:24 lolkop#10
ich würde das ganze folgendermaßen aufbauen:
3 arrays
jeweils eins für jede sprache und eins für anzahl der versuche

also zb
Code:
$ger[3] = ['essen', 'schlafen', 'arbeiten']
$eng[3] = ['eat', 'sleep', 'work']
$try[3] = [1, 1, 1]
jetzt kannst du per Random(0, 2) zb ein englisches bzw deutsches je nachdem wie rum du lernen willst anzeigen lassen, und in einem Edit deine lösung posten.

dann guckst du einfach per GuiCtrlRead($Edit) ob das ergebnis der nummer die du durch random erhalten hast im array entspricht. ist das der fall, erscheint ein richtig, $try[zufallszahl] wird zb -1 gesetzt , und es wird die nächste zufalls zahl generiert. ist die zufallszahl in $cor -1 wird sie direkt übersprungen.

ist das ergebnis falsch erhälst du ein falsch und kannst es vllt nochmal versuchen... aber das entscheidest ja du selbst :P

hier mal ein kleines beispiel wie das ganze aussehen könnte:
Code:
Dim $ger[5] = ['essen', 'schlafen', 'arbeiten', 'fliegen', 'lachen']
Dim $eng[5] = ['eat', 'sleep', 'work', 'fly', 'lol']
Dim $try[5] = [1, 1, 1, 1, 1]
Dim $rand
GUICreate('Vokabel Trainer', 265, 90, -1, -1, 0x10080000)
GUICtrlCreateGroup('Englisch', 10, 10, 110, 40)
$englisch = GUICtrlCreateLabel('', 15, 25, 100, 20)
GUICtrlCreateGroup('Deutsch', 140, 10, 110, 40)
$deutsch = GUICtrlCreateInput('', 145, 25, 100, 20)

$rand = Random(0, UBound($ger))
While 1
	Switch GUIGetMsg()
		Case -3
			Exit
		Case $deutsch
			If GUICtrlRead($deutsch) = $ger[$rand] Then
				GUICtrlSetData($deutsch, '')
				MsgBox(0, 'Richtig', 'Du hast die gesuchte Lösung in '&$try[$rand]&' Versuchen gefunden')
				$try[$rand] = -1
			Else
				GUICtrlSetData($deutsch, '')
				MsgBox(0, 'Falsch', 'Leider war dies nicht die gesuchte Lösung.'&@CRLF&'Die richtige Lösung wäre '&$ger[$rand]&'.')
				$try[$rand] += 1
			EndIf
			$rand = Random(0, UBound($ger))
		Case Else
			If $try[$rand] = -1 Then $rand = Random(0, UBound($ger))
			If GUICtrlRead($englisch) <> $eng[$rand] Then GUICtrlSetData($englisch, $eng[$rand])
			If Done() Then 
				MsgBox(0, 'Info', 'Du hast alle Lösungen gefunden. Das Programm wird nun beendet.')
				ExitLoop
			EndIf
	EndSwitch
WEnd

Func Done()
	For $i=0 To UBound($try)-1
		If $try[$i] <> -1 Then Return False
	Next
	Return True
EndFunc
natürlich kann man die arrays auch in dateien speichern. hierbei würde ich aber von inis abraten, und die datei die du anlegst in einem eigenem format speichern.
09/09/2010 22:45 Madd Eye#11
und nochmal ich würde ne Datenbank nehmen ist am schnellsten ^^
[Only registered and activated users can see links. Click Here To Register...] der Link
09/09/2010 22:46 MoepMeep#12
Quote:
Originally Posted by lolkop View Post
natürlich kann man die arrays auch in dateien speichern. hierbei würde ich aber von inis abraten, und die datei die du anlegst in einem eigenem format speichern.
Und wo liegt bitte der unterschied? ;)


Und btw, lol ist nicht die übersetzung von lachen :>

Quote:
Originally Posted by Madd Eye View Post
und nochmal ich würde ne Datenbank nehmen ist am schnellsten ^^
[Only registered and activated users can see links. Click Here To Register...] der Link
prove it :>

Und selbst wenn es schneller wär, müsste man zusätzlich eine SQL Datenbank installieren, ziemlich aufwändig, findest du nicht? :>
09/09/2010 22:59 lolkop#13
Quote:
Originally Posted by MoepMeep View Post
Und wo liegt bitte der unterschied? ;)
inifunktionen laufen über stringoperationen...

ich würde die files immer über regexp parsen lassen. das ist die schnellste und effizienteste variante die es in autoit gibt.

Quote:
Originally Posted by MoepMeep View Post
Und btw, lol ist nicht die übersetzung von lachen :>
ich hatte gehofft wenn ich lol als wort nehme brauche ich nicht mehr zu erwähnen das es sich hierbei um sarkasmus handelt :P
09/10/2010 12:35 MoepMeep#14
Im 21. Jahrhundert dürften wir bei solchen sachen keine Geschwindigkeitsprobleme mehr haben :p

Und naja, du kennst ja den durchschnittlichen Wissensstand von e*pvp ;) Würde mich nicht wundern, wenn 95% der Leser erstmal Sarkasmus googlen :x
09/10/2010 18:05 flow_getter#15
was ist eine SQL Datenbank?mit welcher sprache würde sich es lohnen einen Vok-Übersetzer/Trainer zu programmieren?