Edits kein enter???

  • HI an alle die diesen Thread lesen! Ich hab da ein Problem und fänd es nett wenn mir jemand helfen würde!

    Mein problem:Angenommen man schreibt etwas in eine Editbox drückt Enter und schreibt dann weiter und speichert den ganzen mist dann über Guictrlread in einer .ini. Das Ergebnis ist, das der text der vor dem enter steht gespeichert wird, der rest jedoch nicht. Meine Frage ist also ob es möglich ist die !ganze! editbox aslesen zu lassen oder ob der text egal wie man es anstellt kein Enter enthalten darf.

    Ich hoffe auf hilfreiche antworten und bedanke mich schonmal 1000 fach im vorraus!!!

    mfg Stormrider

    Einmal editiert, zuletzt von Stormrider (18. Juni 2010 um 16:11)

  • Ini-values enthalten nunmal keine Zeilenumbrüche. Entweder du "entwickelst" eiun eigenes Dateiformat dafür oder du ersetzt alle Zeilenumbrüche durch ein anderes Zeichen, dass du sonst nicht darin verwendest, z.B.

    [autoit]

    $value = GUICtrlRead($EDIT)
    $value = StringReplace($value, @CRLF, Chr(1))
    IniWrite("INI.ini", "SECTION", "KEY", $value)

    [/autoit]


    Beim Einlesen muss es halt entsprechen zurückgewandelt werden.

  • Ich steig da nicht ganz durch! Meinst du das er alle zeilenumbrüche in andere zeichen umwandelt das abspeichert und beim erneuten laden wieder als zeilenumbruch darstellt??

  • Er meint es im Prinzip so:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 263, 237, 192, 124)
    $Edit1 = GUICtrlCreateEdit("", 8, 8, 241, 185)
    GUICtrlSetData(-1, "Edit1")
    $Button1 = GUICtrlCreateButton("Speichern", 8, 208, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Lesen", 176, 208, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $sReturn = StringReplace(GUICtrlRead($Edit1),Chr(13),"<br>")
    IniWrite("test.ini","Text","1",$sReturn)
    Case $Button2
    $sReturn = StringReplace(IniRead("test.ini","Text","1","Leer"),"<br>",Chr(13))
    GUICtrlSetData($Edit1,$sReturn)
    EndSwitch
    WEnd

    [/autoit]

    Merkwürdig ist nur ,dass er bei mir zumindest beim auslesen nur die erste Zeile liest...

    21 is only half the truth.

  • Ich hab es bei mir damals mit "|" ersetzt. Das Zeichen verwendet so gut wie keiner und man kann nachher den Text mit Stringsplit wieder zusammenfügen.
    Mit Stringreplace (seh ich jetzt zum ersten Mal^^) ist es natürlich noch eine viel edlere Lösung, da man sich die For-Schleife erspart.

  • Okay hab den Fehler :D

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 263, 237, 192, 124)
    $Edit1 = GUICtrlCreateEdit("", 8, 8, 241, 185)
    GUICtrlSetData(-1, "Edit1")
    $Button1 = GUICtrlCreateButton("Speichern", 8, 208, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Lesen", 176, 208, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    IniWrite("test.ini","Schluessel","Wert",StringReplace(GUICtrlRead($Edit1),@CRLF,"||"))
    Case $Button2
    GUICtrlSetData($Edit1,StringReplace(IniRead("test.ini","Schluessel","Wert","Leer"),"||",@CRLF))
    EndSwitch
    WEnd

    [/autoit]

    Ist anscheinend kein Return sondern nen Zeilenumbruch

    21 is only half the truth.

  • Oder so :D

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 263, 237, 192, 124)
    $Edit1 = GUICtrlCreateEdit("", 8, 8, 241, 185)
    GUICtrlSetData(-1, "Edit1")
    $Button1 = GUICtrlCreateButton("Speichern", 8, 208, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Lesen", 176, 208, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    IniWrite("test.ini","Schluessel","Wert",StringReplace(StringReplace(GUICtrlRead($Edit1), "\r\n", "\\r\\n"), @CRLF, "\r\n" ))
    Case $Button2
    GUICtrlSetData($Edit1,StringFormat(IniRead("test.ini","Schluessel","Wert","Leer")))
    EndSwitch
    WEnd

    [/autoit]

    edit\ Vergiss mein Beispiel, da waren ein paar Denkfehler drin. War wohl zu bezaubert von der StringFormat Magic

    Einmal editiert, zuletzt von t002 (18. Juni 2010 um 07:46)