Hallo,
wie mache ich das, irgendwie hab ich da grade eine denkblockade.
ich versuche es mit _FileReadToArray, aber wie genau einfügen, ohne jede einzelne Zeile einzeln einzufügen?
Hallo,
wie mache ich das, irgendwie hab ich da grade eine denkblockade.
ich versuche es mit _FileReadToArray, aber wie genau einfügen, ohne jede einzelne Zeile einzeln einzufügen?
Hi,
hoffe ich konnte die Blockade lösen
#include <Array.au3>
#include <File.au3>
#include <GuiEdit.au3>
#include <GUIConstantsEx.au3>
Dim $array
GUICreate("Edit Set Text", 400, 300)
$hEdit = GUICtrlCreateEdit("", 2, 2, 394, 268)
GUISetState()
_FileReadToArray("C:\windows\SchedLgU.txt", $array)
_ArrayDisplay($array)
For $i = 1 To UBound($array) - 1
_GUICtrlEdit_AppendText($hEdit, @CRLF & $array[$i])
Next
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
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"))
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_Event_Close
Exit
EndSwitch
WEnd
ah, dank euch.
hab annos lösung genommen, weil mir das mit jeder zeile einzeln anfügen nicht so schön war *g*
FileRead sollte ich mir mal merken, wurde von mir bis jetzt recht unterbewertet =)
noch ne andere frage im zusammenhang mit ner EditBox.
ich würde gerne die einträge auf knopfdruck sortieren lassen. wenn ich nun die einträge in einem array hätte,
könnte ich _ArraySort nutzen.
wie mache ich es möglichst komfortabel, die einträge im edit zu sortieren und upzudaten?
Hi,
meinst du so?
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
$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)
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
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*)?
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
/Edit: Sorry!!! Hab das Falsch verstanden und nicht als Frage aufgefasst :wacko:
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=""