Fehler beim Speichern von Variablen in ini Datei

  • Hallo an alle,

    habe irgend wie gerade mal wieder etwas Bock mit Autoit was zu machen und auszuprobieren.

    Leider habe ich an der Stelle.

    Case $Speichern1
    FileDelete("c:\test.ini")
    FileWriteLine ("c:\test.ini", $Benutzernam)
    FileWriteLine ("c:\test.ini", $Passwor)
    GUISetState(@SW_Hide, $Form2)
    GUISetState(@SW_SHOW, $Form1)
    ExitLoop

    Etwas Probleme er schreibt mir immer in die Erste Zeile eine 13 und in die zweite eine 14.

    Warum auch immer ?

    [Blockierte Grafik: http://up.picr.de/19297888cc.jpg]

    Hiermal mein ganzes Skript. Sicherlich noch verbesserungswürdig. Allerdings bis auf das Problem erledigt es das was es soll.

    Danke
    Steffen


    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>
    #include <GuiStatusBar.au3>
    #include <StaticConstants.au3>
    #include <EditConstants.au3>
    $Form1 = GUICreate("Arbeitszeiterfassung", 307, 201, 192, 124)
    $Setting_Menu = GUICtrlCreateMenu("Menü")
    $Setting_exit = GUICtrlCreateMenuItem("Ende", $Setting_Menu)
    $helpmenu = GUICtrlCreateMenu("?")
    $BJ = GUICtrlCreateMenuItem("Buchungsjournal",$helpmenu)
    $Einstellung = GUICtrlCreateMenuItem("Einstellungen",$helpmenu)
    $Info = GUICtrlCreateMenuItem("Info",$helpmenu)
    $Kommen = GUICtrlCreateButton("Kommen", 32, 16, 113, 113)
    GUICtrlSetFont(-1, 18, 800, 0, "@Arial Unicode MS")
    GUICtrlSetBkColor(-1, 0x00FF00)
    $Gehen = GUICtrlCreateButton("Gehen", 171, 16, 113, 113)
    GUICtrlSetFont(-1, 18, 800, 0, "@Arial Unicode MS")
    GUICtrlSetBkColor(-1, 0xFF0000)
    GUISetState(@SW_SHOW)
    $StatusBar1 = _GUICtrlStatusBar_Create($Form1)
    _GUICtrlStatusBar_SetBkColor($StatusBar1, 0x0000FF)
    _GUICtrlStatusBar_SetText($StatusBar1, "")
    GUISetState(@SW_SHOW)
    $name = FileReadLine ( "c:\test.ini" , 1 )
    $pw = FileReadLine ( "c:\test.ini" , 2 )
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Einstellung
    GuiSETState(@SW_HIDE, $Form1)
    $name = FileReadLine ( "c:\test.ini" , 1 )
    $pw = FileReadLine ( "c:\test.ini" , 2 )
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Einstellungen", 293, 126, 192, 124)
    $Benutzername = GUICtrlCreateLabel("Benutzername", 8, 16, 100, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "@Arial Unicode MS")
    $Passwort = GUICtrlCreateLabel("Passwort", 8, 64, 66, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "@Arial Unicode MS")
    $Benutzernam = GUICtrlCreateInput($name, 128, 16, 145, 21)
    $Passwor = GUICtrlCreateInput($pw, 128, 64, 145, 21)
    $Speichern1 = GUICtrlCreateButton("Speichern", 128, 96, 65, 25)
    $Abbrechen = GUICtrlCreateButton("Abbrechen", 208, 96, 65, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg1 = GUIGetMsg()
    Switch $nMsg1
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_Hide, $Form2)
    GUISetState(@SW_SHOW, $Form1)
    ExitLoop
    Case $Speichern1
    FileDelete("c:\test.ini")
    FileWriteLine ("c:\test.ini", $Benutzernam)
    FileWriteLine ("c:\test.ini", $Passwor)
    GUISetState(@SW_Hide, $Form2)
    GUISetState(@SW_SHOW, $Form1)
    ExitLoop
    Case $Abbrechen
    GUISetState(@SW_Hide, $Form2)
    GUISetState(@SW_SHOW, $Form1)
    ExitLoop
    EndSwitch
    WEnd
    Case $Gehen
    _GUICtrlStatusBar_SetText($StatusBar1, "Bitte Warten!")
    $oIE = _IECreate("",0,0)
    _IENavigate($oIE, "http://192.168.100.89:/info")
    _IELoadWait($oIE, 0, 30000)
    $oForm = _IEFormGetCollection($oIE, 0)
    $oUsername = _IEFormElementGetObjByname($oForm, "UID")
    $oPassword = _IEFormElementGetObjByName($oForm, "PWD")
    _IEFormElementSetValue($oUsername, $name)
    _IEFormElementSetValue($oPassword, $pw)
    _IEFormSubmit($oForm)
    sleep(500)
    $oForm1 = _IEFormGetCollection($oIE, 0)
    $Menu1 = _IELinkClickByText($oForm1, "Buchung")
    _IELoadWait($oIE)
    sleep(800)
    $oForm2 = _IEGetObjById($oIE, "2img")
    _IEAction($oForm2, "click")
    _IELoadWait($oIE)
    $oForm3 = _IEGetObjById($oIE, "shutdown")
    _IEAction($oForm3, "click")
    _IELoadWait($oIE)
    _IEQuit($oIE)
    _GUICtrlStatusBar_SetText($StatusBar1, "Gehen Gebucht")
    case $Kommen
    _GUICtrlStatusBar_SetText($StatusBar1, "Bitte Warten!")
    $oIE = _IECreate("",0,0)
    _IENavigate($oIE, "http://192.168.100.89:8080/info")
    _IELoadWait($oIE, 0, 30000)
    $oForm = _IEFormGetCollection($oIE, 0)
    $oUsername = _IEFormElementGetObjByname($oForm, "UID")
    $oPassword = _IEFormElementGetObjByName($oForm, "PWD")
    _IEFormElementSetValue($oUsername, $name)
    _IEFormElementSetValue($oPassword, $pw)
    _IEFormSubmit($oForm)
    sleep(500)
    $oForm1 = _IEFormGetCollection($oIE, 0)
    $Menu1 = _IELinkClickByText($oForm1, "Buchung")
    _IELoadWait($oIE)
    sleep(800)
    $oForm2 = _IEGetObjById($oIE, "1img")
    _IEAction($oForm2, "click")
    _IELoadWait($oIE)
    $oForm3 = _IEGetObjById($oIE, "shutdown")
    _IEAction($oForm3, "click")
    _IELoadWait($oIE)
    _IEQuit($oIE)
    _GUICtrlStatusBar_SetText($StatusBar1, "Kommen Gebucht")
    case $Info
    MsgBox (0,"Info","Version 1.3 "&@CRLF&"23.08.2014 SCCSSF")
    case $BJ
    _GUICtrlStatusBar_SetText($StatusBar1, "Bitte Warten!")
    $oIE = _IECreate("")
    _IENavigate($oIE, "http://192.168.100.89:8080/info")
    _IELoadWait($oIE, 0, 30000)
    $oForm = _IEFormGetCollection($oIE, 0)
    $oUsername = _IEFormElementGetObjByname($oForm, "UID")
    $oPassword = _IEFormElementGetObjByName($oForm, "PWD")
    _IEFormElementSetValue($oUsername, $name)
    _IEFormElementSetValue($oPassword, $pw)
    _IEFormSubmit($oForm)
    sleep(200)
    $oForm1 = _IEFormGetCollection($oIE, 0)
    $Menu1 = _IELinkClickByText($oForm1, "Stempelkarte")
    _IELoadWait($oIE)
    _GUICtrlStatusBar_SetText($StatusBar1, "")
    case $Setting_exit
    exit
    EndSwitch
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von SCCSSF (23. August 2014 um 17:39)

  • Du schreibst die ControlID, nicht den Inhalt des Feldes.

    Es müsste heißen:

    [autoit]

    FileWriteLine ("c:\test.ini", GUICtrlRead($Benutzernam))
    FileWriteLine ("c:\test.ini", GUICtrlRead($Passwor))

    [/autoit]

    Abgesehen davon, ich würde dir empfehlen, bessere Namen für Variablen zu verwenden. (Und Präfixe, siehe hier.)
    z.B.
    $Benutzername und $Benutzernam - da genügt schon ein kleiner Tippfehler und du suchst den Fehler sehr lange.

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Hallo PainTain,

    Danke schonmal für die Hilfe, werde mir auch noch das mit den Variablen zum Herzen nehmen und ändern.

    Habe heute noch die Funktion eingebaut und da kam eins zum anderen.

    Nachdem ich jetzt Funktion habe mache ich es noch sauber.

    Danke

    Steffen

    Du schreibst die ControlID, nicht den Inhalt des Feldes.

    Es müsste heißen:

    [autoit]

    FileWriteLine ("c:\test.ini", GUICtrlRead($Benutzernam))
    FileWriteLine ("c:\test.ini", GUICtrlRead($Passwor))

    [/autoit]

    Abgesehen davon, ich würde dir empfehlen, bessere Namen für Variablen zu verwenden. (Und Präfixe, siehe hier.)
    z.B.
    $Benutzername und $Benutzernam - da genügt schon ein kleiner Tippfehler und du suchst den Fehler sehr lange.