komplette txt in Edit einfügen

  • Hi,
    hoffe ich konnte die Blockade lösen :D

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <File.au3>
    #include <GuiEdit.au3>
    #include <GUIConstantsEx.au3>
    Dim $array

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

    GUICreate("Edit Set Text", 400, 300)
    $hEdit = GUICtrlCreateEdit("", 2, 2, 394, 268)
    GUISetState()

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

    _FileReadToArray("C:\windows\SchedLgU.txt", $array)
    _ArrayDisplay($array)

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

    For $i = 1 To UBound($array) - 1
    _GUICtrlEdit_AppendText($hEdit, @CRLF & $array[$i])
    Next

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()

    [/autoit]
  • Aber das geht mit Fileread einfacher:

    [autoit]

    #include <GUIConstantsEx.au3>

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

    GUICreate("Edit Set Text", 400, 300)
    $hEdit = GUICtrlCreateEdit("", 2, 2, 394, 268)
    GUISetState()
    GUICtrlSetData($hEdit, FileRead("C:\windows\SchedLgU.txt"))

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

    While 1
    $msg = GUIGetMsg()

    Switch $msg
    Case $GUI_Event_Close
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Hi,
    meinst du so?

    [autoit]

    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiEdit.au3>

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

    $Form2 = GUICreate("Test ... ", 413, 211, 303, 219)
    $hedit = GUICtrlCreateEdit("", 8, 8, 393, 137)
    GUICtrlSetData($hEdit, FileRead("C:\windows\SchedLgU.txt"))
    $hsort = GUICtrlCreateButton("Sortieren", 8, 152, 153, 49, 0)
    GUISetState(@SW_SHOW)

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

    Global $sortarray[_GUICtrlEdit_GetLineCount ($hedit) + 1]

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hsort
    for $i = 1 to _GUICtrlEdit_GetLineCount ($hedit)
    $sortarray[$i] = _GUICtrlEdit_GetLine($hedit, $i)
    next
    _ArraySort($sortarray)
    _ArrayDisplay($sortarray)
    EndSwitch
    WEnd

    [/autoit]
  • danke anno,

    hab noch was basteln müssen, aber so klappt es schonmal *g*
    mir scheint das ganze nur was umständlich zu sein ... geht das einfacher, schneller, kürzer (und so, dass ich das verstehe *g*)?

    Spoiler anzeigen
    [autoit]

    Local $sortarray[_GUICtrlEdit_GetLineCount ($edit2)]
    _ArrayInsert($sortarray, 0, _GUICtrlEdit_GetLineCount ($edit2))
    For $i = 0 to _GUICtrlEdit_GetLineCount ($edit2)
    _ArrayInsert($sortarray, $i + 1, _GUICtrlEdit_GetLine($edit2, $i))
    Next
    GUICtrlSetData($GuiEdit2, "")
    _ArraySort($sortarray, 0, 1)
    For $i = UBound($sortarray) - 1 To 1 Step - 1
    If Not StringRegExp($sortarray[$i], '[^\s]', 0) Then _ArrayDelete($sortarray, $i)
    Next
    For $i = 1 To $sortarray[0]
    _GUICtrlEdit_AppendText($edit2, $sortarray[$i] & @CRLF)
    Next

    [/autoit]
  • So, mit Erklärung

    [autoit]

    ; Array erstellen, aus dem gelesenen Text
    Local $sortarray = StringSplit(GUICtrlRead($EditCtrl),@CRLF,1)
    ; Sortieren
    _ArraySort($sortarray, 0, 1)
    Local $temptext
    ; Zusammenfügen, für jeden Eintrag
    for $i = 1 to Ubound($sortarray)-1
    ; Den Text anhängen
    $temptext &= $sortarray[$i] & @CRLF
    next
    ; Den Text ins Control setzen
    GUICtrlSetData($EditCtrl,$temptext)
    ; Zwischenspeicher löschen
    Dim $sortarray = "", $temptext=""

    [/autoit]