spanisch...fast...

  • habs fast fertig...
    ein 'Spanischwörterbuch' mit einer ini erstellt

    hier der vorherige Thread:
    [ neu ] Spanischwörterbuch^^

    Andere Vorschläge (siehe )
    Was ich nun noch nicht hin bekomme ist, wie ich die Vokabeln aus der .ini raus bekomme.

    hier noch einmal das ganze Script:

    Spoiler anzeigen
    [autoit]

    #include
    #include
    #include
    #include
    #include

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

    $Form1_1 = GUICreate("Wörterbuch", 315, 214, 270, 168)
    $Input1 = GUICtrlCreateInput("Input1", 48, 48, 145, 21)
    $Label1 = GUICtrlCreateLabel("Übersetzung", 48, 80, 107, 24, $SS_CENTER)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Start", 200, 48, 65, 49, 0)
    $Group1 = GUICtrlCreateGroup("Übersetzen", 32, 32, 249, 81)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button2 = GUICtrlCreateButton("Hinzufügen", 65, 125, 165, 49, 0)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $Button1
    for $i = 0 To UBound("Wörter")
    $ueb = IniReadSection("Wörterbuch.ini","Wörter")
    If $Input1 = $deutsch[$i][0] Then GUICtrlSetData($Label1,$deutsch[$i][1])
    GUICtrlSetData($Label1,$ueb)
    Next

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


    Case $Button2
    $deutsch = InputBox("hinzufügen...","deutsch: ")
    $spanisch = InputBox("hinzufügen...","spanische Übersetzung für: " & $deutsch) ;IniWrite
    IniWrite("Wörterbuch.ini", "Wörter", $spanisch, $deutsch)

    EndSwitch
    WEnd

    [/autoit]

    wobei es eigentlich nur an dieser stelle harken kann.

    [autoit]

    for $i = 0 To UBound("Wörter")
    $ueb = IniReadSection("Wörterbuch.ini","Wörter")
    If $Input1 = $deutsch[$i][0] Then GUICtrlSetData($Label1,$deutsch[$i][1])
    GUICtrlSetData($Label1,$ueb)
    Next

    [/autoit]


    dort wird nämlich gesagt dass die variabel $deutsch noch nicht deklariert ist,
    aber ich weiß nicht wie ich die deklarieren soll da die ja doch in der ini ist oder nicht?


    Wär über Hilfe dankbar


    //Edit: an den includes liegt es nicht, die sind eigentlich richtig mit dadrin...

    Gruß,
    Buckiuxx
    :thumbup::thumbup::thumbup:

  • Schreib oben in das Skript

    Global $deutsch

    Also:

    [autoit]

    #include
    #include
    #include
    #include
    #include

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

    Global $deutsch

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

    $Form1_1 = GUICreate("Wörterbuch", 315, 214, 270, 168)
    $Input1 = GUICtrlCreateInput("Input1", 48, 48, 145, 21)
    $Label1 = GUICtrlCreateLabel("Übersetzung", 48, 80, 107, 24, $SS_CENTER)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Start", 200, 48, 65, 49, 0)
    $Group1 = GUICtrlCreateGroup("Übersetzen", 32, 32, 249, 81)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button2 = GUICtrlCreateButton("Hinzufügen", 65, 125, 165, 49, 0)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $Button1
    for $i = 0 To UBound("Wörter")
    $ueb = IniReadSection("Wörterbuch.ini","Wörter")
    If $Input1 = $deutsch[$i][0] Then GUICtrlSetData($Label1,$deutsch[$i][1])
    GUICtrlSetData($Label1,$ueb)
    Next

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


    Case $Button2
    $deutsch = InputBox("hinzufügen...","deutsch: ")
    $spanisch = InputBox("hinzufügen...","spanische Übersetzung für: " & $deutsch) ;IniWrite
    IniWrite("Wörterbuch.ini", "Wörter", $spanisch, $deutsch)

    EndSwitch
    WEnd

    [/autoit]
  • Fehlermeldung...

    wenn ich global $deutsch davor eintrage, meint er diese Variabel
    wurde nicht als Array deklariert...so hab ich's nun verstanden

  • Weil du hier 2 verschiedene $deutsch Variabeln verwendest!

    [autoit]


    If $Input1 = $deutsch[$i][0] Then GUICtrlSetData($Label1,$deutsch[$i][1])
    ;...
    $deutsch = InputBox("hinzufügen...","deutsch: ")

    [/autoit]

    1x als "normale" Variabel!
    Und dann nochmal als Array.
    Wobei der Befehl keinen Array zurückgibt kannst du nicht, wie du es oben getan hast, die Variabel $deutsch[$i][0] abfragen.

  • Aber im Prinzip sind das doch die gleichen?

    Wie lässt sich das Problem denn sonst lösen?

  • Spoiler anzeigen
    [autoit]

    #include
    #include
    #include
    #include
    #include

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

    Global $deutsch

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

    $Form1_1 = GUICreate("Wörterbuch", 315, 214, 270, 168)
    $Input1 = GUICtrlCreateInput("Input1", 48, 48, 145, 21)
    $Label1 = GUICtrlCreateLabel("Übersetzung", 48, 80, 107, 24, $SS_CENTER)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Start", 200, 48, 65, 49, 0)
    $Group1 = GUICtrlCreateGroup("Übersetzen", 32, 32, 249, 81)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button2 = GUICtrlCreateButton("Hinzufügen", 65, 125, 165, 49, 0)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $Button1
    for $i = 0 To UBound("Wörter")
    $ueb = IniReadSection("Wörterbuch.ini","Wörter")
    If $Input1 = $ueb[$i][0] Then GUICtrlSetData($Label1,$ueb[$i][1])
    GUICtrlSetData($Label1,$ueb)
    Next

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


    Case $Button2
    $deutsch = InputBox("hinzufügen...","deutsch: ")
    $spanisch = InputBox("hinzufügen...","spanische Übersetzung für: " & $deutsch) ;IniWrite
    IniWrite("Wörterbuch.ini", "Wörter", $spanisch, $deutsch)

    EndSwitch
    WEnd

    [/autoit]


    Probier es mal so.

    Und gib mir bitte mal die INI.
    Dann kann ich das hier weiter vertiefen.

  • es geht fast, hab ich das Gefühl,

    Nun wird das Label einfach durch nichts ersetzt,
    es wird kein Fehler mehr angezeigt,
    die Variabeln müssen stimmen, eig.
    Ich glaub, da gibts noch irgendeinen Fehler beim Lesen der ini...

    Hier ist sie:

    der Name ist halt 'Wörterbuch.ini'


    Spoiler anzeigen


    [Wörter]
    la=Die
    lago=See
    hola=hallo


    mehr ist da gar nicht drinne...

    Auf dem Wege zum Erfolg...

    Gruß,

    Buckiuxx

    :thumbup::thumbup::thumbup:

  • joa...wenn's funktioniert mal gucken
    in erster Linie geht's mir um den Nutzen

  • Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>

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

    Global $deutsch

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

    $Form1_1 = GUICreate("Wörterbuch", 315, 214, 270, 168)
    $Input1 = GUICtrlCreateInput("Input1", 48, 48, 145, 21)
    $Label1 = GUICtrlCreateLabel("Übersetzung", 48, 80, 107, 24, $SS_CENTER)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Start", 200, 48, 65, 49, 0)
    $Group1 = GUICtrlCreateGroup("Übersetzen", 32, 32, 249, 81)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button2 = GUICtrlCreateButton("Hinzufügen", 65, 125, 165, 49, 0)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $Lines = _FileCountLines (@ScriptDir&"\Wörterbuch.ini")
    $Lines = $Lines - 1
    For $i = 1 To $Lines
    $ueb = IniReadSection("Wörterbuch.ini","Wörter")
    If GUICtrlRead($Input1) = $ueb[$i][0] Then GUICtrlSetData($Label1,$ueb[$i][1])
    Next

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

    Case $Button2
    $deutsch = InputBox("hinzufügen...","deutsch: ")
    $spanisch = InputBox("hinzufügen...","spanische Übersetzung für: " & $deutsch) ;IniWrite
    IniWrite("Wörterbuch.ini", "Wörter", $spanisch, $deutsch)

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

    EndSwitch
    WEnd

    [/autoit]


    Bitte schön ! :)

  • Ich mach das gerade nochmal mit SQLite.
    Wenns fertig ist, poste ich's ^^

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • ok...mach das...

    Die Version von 'PokerFace' funktioniert perfekt...
    bevor ich den Thread nu schließe,
    kannst du mir sagen warum das nun mit

    [autoit]

    _FileCountLines

    [/autoit]

    geht und mit denen davor nicht?


    Vielen, vielen Dank,
    dass du es zum Laufen gebracht hast.


    Gruß,

    Buckiuxx

    :thumbup::thumbup::thumbup:

  • Hey
    Also du hast das geschrieben:

    [autoit]

    for $i = 0 To UBound("Wörter")

    [/autoit]


    Aber UBound gibt die gesamtgröße eines ARRAYS zurück.
    Und "Wörter" ist eben kein Array.
    Also läuft deine For..Next Schleife kein einziges mal durch, weil er eben keinen "to" Wert hat.

    Also habe ich Filecountline benutzt um die Anzahl der Zeilen zu bekommen um dann zu schreiben:

    [autoit]

    for $i = 0 To $Lines

    [/autoit]

    Deine Methode hätte soweit ich weiß auch funktioniert, wenn du aber eine richtig For..Next Schleife angewendet hättest.

  • ok...
    danke...

    wer Lust hat, darf noch ein Paar Wörter für mich, die in die ini kommen, posten^^

    Hier die Anfangs Buchstaben der noch fehlenden spanischen Vokabeln

    c d e f g h i j l m n o p q r s t u z


    bitte in dieser Form:

    Spoiler anzeigen


    "Spanische Vokabel" = "Deutsche Vokabel"


    la=Die
    lago=der See
    [...]

    Akzente der Einfachheit halber weglassen!
    20-50 Vokabeln reichen, je nach Anfangsbuchstaben!
    Also: Bitte auf die häufigst gebrauchten beschränken!


    Gruß und Dank,

    Buckiuxx

    :thumbup::thumbup::thumbup: