txt in edit

  • Guten morgen Autoit ! :)

    ich habe da ein kleines Problem mit mein Script,
    Ich will den Text von der Edit-Box in der GUI setzen..

    Ein kleiner Ausschnitt:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    $GUI = GUICreate("Gui-test", 404, 181, 142, 171)
    $Edit1 = GUICtrlCreateEdit("", 8, 8, 249, 153, BitOR($GUI_SS_DEFAULT_EDIT,$ES_READONLY))

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

    $fileo = FileOpen(@ScriptDir&"/data.txt")
    $Filer = Fileread($fileo)
    GUICtrlSetData($Edit1,$Filer)
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(40)
    WEnd

    [/autoit]

    Das funktioniert natürlich Super, aber es wird in der Edit-box alles in einer Zeile gesetzt :(
    Ich möchte gerne das die Zeilenumbrüche wie in der .txt Datei ist.

    MfG Butter

  • Kann es sein, dass deine TXT nur LF und keine CRLF Umbrüche hat (kannst du in SciTe überprüfen)?

    Ansonsten kannst du mit $ES_WANTRETURN einen Umbruch am Zeilenende erzwingen.

  • Spoiler anzeigen

    Wie minx bereits sagte, liegt es an den Zeilenumbrüchen selber...
    Es wird vermutlich LF bzw. CR verwendet.

    Das kannst du mit StringRegExpReplace beispielsweise lösen:

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    $GUI = GUICreate("Gui-test", 404, 181, 142, 171)
    $Edit1 = GUICtrlCreateEdit("", 8, 8, 249, 153, BitOR($GUI_SS_DEFAULT_EDIT,$ES_READONLY))

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

    $fileo = FileOpen(@ScriptDir&"/dataxxx.txt", 2)
    FileWrite($fileo, "TextA" & @CR & "TextB" & @LF & "TextC")
    FileClose($fileo)

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

    $fileo = FileOpen(@ScriptDir&"/dataxxx.txt")
    $Filer = StringRegExpReplace(Fileread($fileo), '\n|\r', @CRLF)
    GUICtrlSetData($Edit1,$Filer)
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(40)
    WEnd

    [/autoit]

    €dit:
    Hey, man löscht nicht einfach seine eigenen Beiträge als Threadsteller...
    Besonders nicht wenn es dabei um die Problemstellung geht!
    Was ist wenn andere das Problem haben?

    Bitte beachte das demnächst ja?

    Einmal editiert, zuletzt von Yjuq (28. April 2013 um 14:07)