AutoIt als karteikarten ersetzer

  • Soo leute ^^
    Wie schon in der Überschrift gesagt, möchte ich mit AutoIt Karteikarten ersetzten.
    Da man oft für englisch/französisch Vokabeln lernen muss, habe ich mir überlegt
    einfach mal ein bischen Papier zu sparen und so was ähnliches mit AutoIt erstellen.

    Aber dafür brauche ich Hilfe von ein paar Experten :D

    Meine Idee währe: Dass man die Vokabeln erstmal einträgt und dan sie nach einander kommen.
    Ein kleines Fenster "Frage" dan soll man was eintippen , und es ist egal ob es richtig oder falsch ist nach der Antwort soll das richtige Ergebniss
    gezeigt werden ^^

    Ich versuch jetzt solange einen eigenen entwurf zu machen :rolleyes:

  • ich hab schon icq aber ich weiß nicht was das bringen soll ^^
    hab ja erklärt wie das prog ungefähr aussehen muss

  • ich bin dabei ein eigenes zu erstellen,
    ich poste das gleich
    ihr sollt mich nur korrigieren oder verbessern und tipps geben :D

  • Ich dachte eher an sowas.
    Aber die Vokabeln(x) sollen zufällig nach einander kommen

  • Hmm erstmal danke für das Prog,
    aber ich dachte eher an sowas, was man neben bei.. (surfen oder spielen)
    machen kann.
    Wie das mit dem ToolTip

  • hi..hab mal bissl was gemacht

    die funktion _next muss noch definiert werden usw...mach ich vllt später, hoffentlich hilfts..

    Spoiler anzeigen


    ;includes
    #include "file.au3"
    ;include Ende

    ;Variablen
    Dim $arvocs
    Dim $allvocs
    ;Variablen Ende

    ;Vokabeln auslesen
    _FileReadToArray (@scriptdir & "\vokabeln.txt", $arvocs)
    $allvocs = UBound ($arvocs)
    ;Vokabeln auslesen Ende

    ;ToolTip
    $random = Random (1, $allvocs, 1)
    $voc = $arvocs[$random]
    ToolTip ($voc, 1000, 1000)
    ;ToolTip Ende

    ;GUI
    $Form1 = GUICreate("Vokabeltester", 100, 80, 300, 10)
    $input = GUICtrlCreateInput ("" , 10, 10, 80, 20)
    $ok = GUICtrlCreateButton ("OK", 40, 40)
    GUISetState (@sw_show)
    ;Gui Ende

    ;Warten aufs ausfüllen
    While 1
    $bla = GUIGetMsg()
    switch $bla
    Case $ok
    _next()
    EndSwitch
    WEnd

  • die nächste vokabel geben lassen. wäre also quasi die sektion tooltip..ich merk grad das es sogar ziemlich genau die sektion tooltip ist xD..man müsste nur noch die bereits benutzte vokabel ausschließen...was dann ncoh fehlt is die anzeige der richtigen vokabel..

    edit: ich merk grad das ich selbst iwo dadrin nen fehler hab...jetzt geht die große suche wieder los -.-

    Einmal editiert, zuletzt von unaimed (10. März 2009 um 16:46)

  • ok also das funktioniert jetzt soweit..
    achso übrigens..du musst im verzeichnis des scripts eine datei haben die die vokabeln enthält. diese datei muss "vokabeln.txt" heißen.

    [autoit]


    ;includes
    #include "file.au3"
    ;include Ende

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

    ;Variablen
    Dim $arvocs
    Dim $allvocs
    ;Variablen Ende

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

    ;Vokabeln auslesen
    _FileReadToArray (@scriptdir & "\vokabeln.txt", $arvocs)
    $allvocs = UBound ($arvocs)
    ;Vokabeln auslesen Ende

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

    ;ToolTip
    $random = Random (1, $allvocs, 1)
    $voc = $arvocs[$random]
    ToolTip ($voc, 500, 500)
    ;ToolTip Ende

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

    ;GUI
    $Form1 = GUICreate("Vokabeltester", 100, 80, 300, 10)
    $input = GUICtrlCreateInput ("" , 10, 10, 80, 20)
    $ok = GUICtrlCreateButton ("OK", 40, 40)
    GUISetState (@sw_show)
    ;Gui Ende

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

    ;Warten aufs ausfüllen
    While 1
    $bla = GUIGetMsg()
    switch $bla
    Case $ok
    _next()
    EndSwitch
    WEnd

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

    Func _next()
    GUISetState (@SW_hide)
    GUICtrlSetData ($input, "")
    ToolTip ("Richtig ist:" & "kommt noch..", 500, 500)
    Sleep (2000)
    $arvocs[$random] = ""
    $random = Random (1, $allvocs, 1)
    $voc = $arvocs[$random]
    If $voc = "" Then
    _next()
    EndIf
    ToolTip ($voc, 500, 500)
    GUISetState (@SW_show)
    EndFunc

    [/autoit]
  • lösung von unaimed finde ich ganz gut, wenn es fertig ist, mit richtig und falsch.

    ich habe mal eine variante mit Tooltip gemacht, wo man per Leertaste zur Englischen vokabel springt. Leider weiss ich dabei nicht, wie man das mit dem random macht.

    Quelltext:

    Spoiler anzeigen
    [autoit]

    #include <StaticConstants.au3>
    #include <Misc.au3>

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

    Global $Counter = 1, $deutsch , $englisch, $dll = DllOpen("user32.dll"), $test

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

    While 1
    $deutsch = IniRead(@ScriptDir & "\Vokabeln.txt", "Deutsch", $Counter, "")
    if $deutsch == "" Then Exit
    $englisch = IniRead(@ScriptDir & "\Vokabeln.txt", "Englisch", $Counter, "")
    Do
    $test = _IsPressed("20",$dll)
    ToolTip("Deutsch",500,500,$deutsch,"",1)
    Sleep (100)
    Until $test = 1
    ToolTip("Englisch",500,500,$englisch,"",3)
    Sleep (3000)
    $counter = $counter + 1
    WEnd

    [/autoit]

    und die dazugehörige Textdatei Namens: Vokabeln.txt

    Spoiler anzeigen

    [Deutsch]
    1=Hallo
    2=Welt
    3=...
    4=...
    5=...
    ...

    [Englisch]
    1=hello
    2=world
    3=...
    4=...
    5=...
    ...

    Edit:: Ich hatte daran gedacht, den Counter random zu machen, sodass immer zufällige Vokabeln kommen. Das problem ist glaube nur, dass man jedesmal den Quelltext editieren müsste und random 1-x (wieviele vokabeln es gibt) angeben muss oder?

    Einmal editiert, zuletzt von SiLenCa (10. März 2009 um 17:33)

  • für das zufällige kannst du einfach alle vokabeln in ein array laden (Filereadtoarray, arrayadd)...dann lässt du dir per ubound sagen wie groß das array ist und lässt dir per random (1, $vokabelanzahl, 1) eine zahl geben.

  • für das zufällige kannst du einfach alle vokabeln in ein array laden (Filereadtoarray, arrayadd)...dann lässt du dir per ubound sagen wie groß das array ist und lässt dir per random (1, $vokabelanzahl, 1) eine zahl geben.

    wäre ja alles schön und gut, wenn meine Textdatei net so komisch aussehen würde ;)

  • So, habs jetzt gelöst... sieht aber ziemlich komisch aus und is irgentwie nicht das beste / schnellste ;)

    Spoiler anzeigen
    [autoit]

    #include <StaticConstants.au3>
    #include <Misc.au3>

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

    Global $Counter = Random (1,100,1), $deutsch , $englisch, $dll = DllOpen("user32.dll"), $test

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

    While 1
    $deutsch = IniRead(@ScriptDir & "\Vokabeln.txt", "Deutsch", $Counter,"0")
    if $deutsch <> "0" Then
    $englisch = IniRead(@ScriptDir & "\Vokabeln.txt", "Englisch", $Counter, "")
    Do
    $test = _IsPressed("20",$dll)
    ToolTip("Deutsch",500,500,$deutsch,"",1)
    Sleep (100)
    Until $test = 1
    ToolTip("Englisch",500,500,$englisch,"",3)
    Sleep (3000)
    $counter = Random (1,100,1)
    Elseif $deutsch == 0 Then
    do
    $counter = Random (1,100,1)
    Until $Counter <> "0"
    EndIf
    WEnd

    [/autoit]

    Edit:: problem ist, es können vokabeln mehrmals hintereinander drankommen wenn man glück/pech hat ^^

  • was istn daran komisch? das mit 1= kann man mit stringsplit lösen
    Beispiel: (in autoit einfügbar zum anschauen)

    [autoit]


    $string = "1=Bla"
    $i = StringSplit ($string, "=")
    msgbox (0,0,$i[1])
    msgbox (0,0,$i[2])

    [/autoit]

    [deutsch] und [englisch] einfach per:

    [autoit]


    if $vokabel = "[Deutsch]" Then
    _zurück_zu_random
    Elseif $vokabel = "[Englisch]" Then
    zurück_zu_random
    Endif

    [/autoit]

    edit: // verdamtm hasts selbst schon gelöst -.-... :D

    die vokabeln.txt hat silenca gepostet, er nutzt ne andere als ich.