Ini Problem

  • Kleine Frage:

    Ich versuche was in einer Ini zu Speichern, aber ich bekomme immer nur das selbe raus, egal wie ich das drehe und wende und ich finde einfach den Fehler nicht..

    [autoit]


    Case $User
    IniWrite(@ScriptDir &"\Data.ini", "Username", "User",$User)
    $User=IniRead(@ScriptDir &"\Data.ini","Username","User","")
    If @Error Then
    MsgBox(0, "Achtung", "Fehler")
    Else

    EndIf
    Case $PW
    IniWrite(@ScriptDir &"\Data.ini", "Password","PW",$PW)
    $PW=IniRead(@ScriptDir &"\Data.ini","Password","PW","")
    If @Error Then
    MsgBox(0, "Achtung", "Fehler")
    Else

    EndIf

    [/autoit]

    Die Ini gibt folgendes raus:

    [Username]
    User=8
    [Password]
    PW=9

    Wobei 8 und 9 nicht die Eingabe von mir ist sondern ne Ausgabe wo ich nicht weiss was und woher etc

  • also bei mir funktioniert es ?(

    Falls du eine Gui erstellt hast und die 2 Daten in einer Inputbox oder ähnlichem abfragst, dann solltest du es mit GuiCtrlRead probieren.


    Mfg hulle.

  • Hallo rayray99,

    wie du an diesem abgeänderten Codeschnipsel erkennen kannst funktioniert dieser Teil deines Skriptes:

    [autoit]


    ;Case $User
    $User = "Testuser"
    IniWrite(@ScriptDir &"\Data.ini", "Username", "User",$User)
    $User = "NOBODY"
    $User=IniRead(@ScriptDir &"\Data.ini","Username","User","")
    If @Error Then
    MsgBox(0, "Achtung", "Fehler")
    Else
    MsgBox(0, "User", $User)
    EndIf
    ;Case $PW
    $PW = "vergessen"
    IniWrite(@ScriptDir &"\Data.ini", "Password","PW",$PW)
    $PW = "is perfect"
    $PW=IniRead(@ScriptDir &"\Data.ini","Password","PW","")
    If @Error Then
    MsgBox(0, "Achtung", "Fehler")
    Else
    MsgBox(0, "Passwort", $PW)
    EndIf

    [/autoit]


    Der Fehler liegt also woanders, poste doch einfach dein komplettes Skript oder mach ein Beispiel, in welchem der Fehler auch auftritt,

    mfg (Auto)Bert

  • EDIT: Ich habe die Variante von Ocar benutzt und es ging auf anhieb ( nur das folgende Problem hab ich noch)

    Merkwürdig!

    Hatte mich hier gerade zum Horst gemacht und konnte es noch schnell löschen^^

    Gut nun hab ich mein fehler erkannt!!
    Bei user kann ich nur Zahlen eingeben und beim PW ist das egal. Warum weiss ich aber nicht.?????

    WARUM? =)

    4 Mal editiert, zuletzt von rayray99 (11. Juni 2009 um 01:20)

  • Hallo rayray99,

    Zitat

    Bei user kann ich nur Zahlen eingeben und beim PW ist das egal. Warum weiss ich aber nicht.?????


    meine Glaskugel ist mir leider vom Tisch gefallen und aus dem von dir bisher veröffentlichten Code kann ich die Antwort nicht erraten,

    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (11. Juni 2009 um 15:50)

  • Im Prinzip ist das da oben ja der code meiner funktion..

    Hab das mal bei der Sufu gefunden und ich denke das was da erklärt wird, wird wohl auch mein problem sein.


    -------------------------------------
    Nun das Problem ist das du mit der Zeile "If $input = 0 Then" einen String mit einer Zahl vergleichen willst.
    Deswegen formt AutoIt den String intern in eine Zahl um.
    Das läuft intern so das alle Zahlen am Anfang des Textest übernommen werden und als Zahl zurückgegeben.
    Im Falle von "123FireFox" würde bei dieser Umwandlung 123 herauskommen.
    Das kann AutoIt dann mit einer Zahl vergleichen.
    Ist am Anfang keine Zahl vorhanden wird 0 zurückgeben.
    Hier sieht es nun so aus das $input nun den Wert "Schlüssel nicht gefunden" hat und dann, da du ihn mit einer Zahl vergleichst und nicht mit einem String intern in eine Zahl umgewandelt wird.
    Und da kommt 0 dabei heraus - deswegen ist deine If-Bedingung in diesem Fall erfüllt.
    -------------------------------------


    Nochmal...Zahlen werden in der Ini ausgegeben, aber Buchstaben nicht.
    EDIT: Habs nochmal getestet und wenn bei einem zuerst ne Zahl eingegeben wird, dann funtioniert es bei dem anderen nichtmehr mit Buchstaben

    Einmal editiert, zuletzt von rayray99 (11. Juni 2009 um 15:49)