INI Problem

  • Guten Abend liebe Community ^^
    Unszwar habe ich ein kleines Problem beim schreiben eine INI Datei.

    Der Quellcode:

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=c:\users\nils\pictures\skype.kxf
    $Form1_1 = GUICreate("Form1", 337, 143, 192, 124)
    $Input2 = GUICtrlCreateInput("", 24, 56, 137, 21)
    $Input3 = GUICtrlCreateInput("", 24, 80, 137, 21)
    $Button2 = GUICtrlCreateButton("Speichern", 168, 80, 65, 17, $WS_GROUP)
    $Input4 = GUICtrlCreateInput("", 24, 104, 137, 21)
    $Button3 = GUICtrlCreateButton("Speichern", 168, 104, 65, 17, $WS_GROUP)
    $Button1 = GUICtrlCreateButton("Speichern", 167, 57, 65, 17, $WS_GROUP)
    $Label1 = GUICtrlCreateLabel("Setze dein Skype Status!", 8, 8, 268, 29)
    GUICtrlSetFont(-1, 16, 400, 0, "Verdana")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    IniWriteSection(@ScriptDir & "\Programm.ini", "Status", "Status1",Guictrlread ($Input2))
    Case $Button2
    IniWriteSection(@ScriptDir & "\Programm.ini", "Status", "Status2",Guictrlread ($Input3))
    Case $Button3
    IniWriteSection(@ScriptDir & "\Programm.ini", "Status", "Status3",Guictrlread ($Input4))

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

    EndSwitch
    WEnd

    [/autoit]


    Vor dem ausführen der Datei:
    Programm.ini
    [Status]
    Status1=
    Status2=
    Status3=


    Nach dem ich auf den Button speichern gedrückt habe schreibt er die Datei irgendwie so um:
    Programm.ini

    [Status]
    Status3Status2
    Status1


    Ich hoffe mir kann jemand helfen :(

    Einmal editiert, zuletzt von SlinJD (6. Mai 2011 um 13:37)

    • Offizieller Beitrag

    Warum benutzt du IniWriteSection? Damit schreibt man eine koplette Section, das Heiß alles Keys.
    Der 4. Parameter von IniWriteSection ist der Startindex, wenn ein Array übergeben wird.

    Benutze IniWrite und du hast keine Probleme.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=c:\users\nils\pictures\skype.kxf
    $Form1_1 = GUICreate("Form1", 337, 143, 192, 124)
    $Input2 = GUICtrlCreateInput("", 24, 56, 137, 21)
    $Input3 = GUICtrlCreateInput("", 24, 80, 137, 21)
    $Button2 = GUICtrlCreateButton("Speichern", 168, 80, 65, 17, $WS_GROUP)
    $Input4 = GUICtrlCreateInput("", 24, 104, 137, 21)
    $Button3 = GUICtrlCreateButton("Speichern", 168, 104, 65, 17, $WS_GROUP)
    $Button1 = GUICtrlCreateButton("Speichern", 167, 57, 65, 17, $WS_GROUP)
    $Label1 = GUICtrlCreateLabel("Setze dein Skype Status!", 8, 8, 268, 29)
    GUICtrlSetFont(-1, 16, 400, 0, "Verdana")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    IniWrite(@ScriptDir & "\Programm.ini", "Status", "Status1",Guictrlread ($Input2))
    Case $Button2
    IniWrite(@ScriptDir & "\Programm.ini", "Status", "Status2",Guictrlread ($Input3))
    Case $Button3
    IniWrite(@ScriptDir & "\Programm.ini", "Status", "Status3",Guictrlread ($Input4))

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

    EndSwitch
    WEnd

    [/autoit]
  • Raupi , Du solltest auch lieber "iniwrite" verwenden ! ;)

    So jetzt zu Dir SlinJD:

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

    Global $ini = @ScriptDir & "\Programm.ini"

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

    $Form1_1 = GUICreate("Form1", 337, 143, 192, 124)
    $Input2 = GUICtrlCreateInput("max", 24, 56, 137, 21)
    $Input3 = GUICtrlCreateInput("peter", 24, 80, 137, 21)
    $Input4 = GUICtrlCreateInput("lutz", 24, 104, 137, 21)
    $Button1 = GUICtrlCreateButton("Speichern", 167, 104, 75, 22)
    $Label1 = GUICtrlCreateLabel("Setze dein Skype Status!", 8, 8, 268, 29)
    GUICtrlSetFont(-1, 16, 400, 0, "Verdana")
    GUISetState(@SW_SHOW)

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

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $Button1
    _iniWrite()
    Exit
    EndSwitch
    WEnd

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

    Func _iniWrite()
    IniWrite($ini, "Status", "Status1", GUICtrlRead($Input2))
    IniWrite($ini, "Status", "Status2", GUICtrlRead($Input3))
    IniWrite($ini, "Status", "Status3", GUICtrlRead($Input4))
    EndFunc ;==>_iniWrite
    ; Ende

    [/autoit]
    • Offizieller Beitrag
    Zitat von RR04

    Raupi , Du solltest auch lieber "iniwrite" verwenden ! ;)


    Habe ich doch :D
    Beim 1. Edit hat Scite gesponnen und denn Quellcode nicht in die Zwischenablage kopiert.
    Hab ich aber schon 11 Minuten vor deinem Post gemerkt und umgeändert :P