Ini-Eintrag

  • Deins erreicht nicht das gewollte, hat mir aber schon mal weitergeholfen.
    Wenn in der Ini beispielsweise nur steht:

    Code
    [test]
    ioderid oder id=


    bei diesen 3 werten soll er das, was hinter dem = stehen würde, neu abfragen...
    Bisher habe ich es nur erreicht, dass er es bei i und bei id neu abfragt, nicht aber bei id= ... im Moment habe ich

    [autoit]

    $ini=IniRead("C:\test.ini","test","id","Failure")
    If $ini="Failure" then
    MsgBox(0,"geklappt","wunderbar")
    else
    MsgBox(0,"nicht geklappt","bescheuert")
    EndIf

    [/autoit]


    was aber auch nicht bei id= neu abfragt...
    Hab schon so viel ausprobiert...

    Edit, ich bin doch auch blöd...
    Habe das = vergessen, also:

    [autoit]

    $ini=IniRead("C:\test.ini","test","id=","Failure")
    If $ini="Failure" then
    MsgBox(0,"geklappt","wunderbar")
    else
    MsgBox(0,"nicht geklappt","bescheuert")
    EndIf

    [/autoit]


    Jetzt klappt alles, danke an alle, besonders an dich FireFlyer ;)

    Edit2 Irgendwie klappt gar nichts mehr. Auch das hier drüber, was ging, geht nicht mehr. Wenn ich das = weglasse, klappt es wieder wie gewohnt, außer mit id= , dazu musste ich ja nur im Quelltext auch das = ergänzen, wenn ich das aber tue, dann kann ich das If $ini="Failure" then sparen, weil er das Then immer ausführt, bin am verzweifeln ^^ , weiß jemand was ich falsch mache? vorher gings ja auch ...

    Einmal editiert, zuletzt von NoName (13. Januar 2008 um 19:57)

  • das = muss weg bleiben. Das ist nur das trennzeichen zwischen Key und Wert, das man nicht angibt.,

  • Ja, aber wenn dass in der Ini steht: id= aber kein wert dahinter, dann fragt er nicht neu ab, aber genau das soll er ja ...

  • Wieso wertest du dann nicht einfach die Rückgabe aus?

    [autoit]

    Do
    $ini=IniRead("C:\test.ini","test","id","Fehler")
    Until NOT $ini = "Fehler"

    [/autoit]

    Projekte: Keine größeren (und fertigen)
    Gegen Internetzensur:
    https://epetitionen.bundestag.de/index.php?acti…s;petition=3860
    (Zeichnungsfrist abgelaufen)
    __________________________________________________________________________________________________________________________________
    Dieser Beitrag wurde bereits 264 mal editiert, zuletzt von »Fast2« (30. Februar 2009, 12:99)

  • Wieso wertest du dann nicht einfach die Rückgabe aus?

    [autoit]

    Do
    $ini=IniRead("C:\test.ini","test","id","Fehler")
    Until NOT $ini = "Fehler"

    [/autoit]

    Damit erreichst du zwar, dass er, wenn in der ini id= steht, neu abfragt, aber bei id oder i macht er wieder nichts, was ja mein ziel ist...sonst müsste ich das kombinieren...

    • Offizieller Beitrag

    Hi,
    dann prüfe doch vorher ob der Schlüssel existiert. Wenn nicht, wird er angelegt und der User muß den Wert eingeben:

    Spoiler anzeigen
    [autoit]

    Do
    $val = _CheckINI($INIpath, 'section', 'key')
    If $val = 'NO_KEY' Then IniWrite($INIpath, 'section', 'key', InputBox('Erfassen', 'Bitte Wert eingeben'))
    Until $val <> 'NO_KEY'
    ; $val enthält den Wert von 'key'

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

    Func _CheckINI($INI, $SEC, $KEY)
    $arSection = IniReadSection($INI, $SEC)
    If @error Then Return MsgBox(0, '', 'Sektion konnte nicht gelesen werden')
    For $i = 1 To UBound($arSection)-1
    If $arSection[$i][0] == $KEY Then Return $arSection[$i][1]
    Next
    Return 'NO_KEY'
    EndFunc

    [/autoit]
  • Wusste gar nicht, dass es einen Befehl zur Überprüfung des Keys gibt... sonst hätte ich das Problem nicht gehabt ^^
    Gelöst. Hab noch eine weitere kleine Frage:
    Mit welchem Befehl, dass ein Programm in den Vordergrund geschoben wird? Ich mache grade ein Programm, wo es auch so einen Button gibt, immer im Vordergrund...