Ich habe ein kleines Programm, welches mir Daten in einer Textdatei folgendermassen speichert:
1829|2871|3789
8104|3422|3981
Diese Zahlen (oder andere Daten) werden in einem ListView ausgegeben, die Spalten durch "|" getrennt.
Nun habe ich ein Inputfeld in der GUI und einen Button. Wenn ich etwas eingebe in das Inputfeld und den Button dücke, soll die ListView nur noch Zeilen anzeigen, welche das angegebene beinhalten. Gebe ich zum Beispiel "8" ein und drücke den Button, sollen beide Zeilen angezeigt werden, gebe ich aber "7" ein, dann nur die Erste.
[Noch besser wäre natürlich, dass es dies anzeigt, ohne einen Button drücken zu müssen. Gebe ich also "8" ein, zeigt es beide Zeilen an, füge ich dann noch eine "7"-also dann "87"- dazu, gibt es nur noch die erste Zeile aus.] - Als Beispiel, damit man sich dies besser vorstellen kann: Die Windows suche...
Setz ein Event dafür das sich der Inhalt des Inputs geändert wurde und Such das Array der Einträge einfach danach durch und speicher sie in einem neuen Array, clear das ListView und füge die neuen Daten rein.
Da ich mich noch nicht so lange mit AutoIt auseinandersetze, hast du evtl. ein Beispiel?
Du könntest sowas machen:
Global $last = ""
...
...
While Sleep(100)
$new = GuiCtrlRead($Input)
If Not ($new = $last) Then
aktualisiere($new)
$last = $new
EndIf
So kannst du schon mal ohne einen button zu drücken das ganze machen. In der aktualisieren funktion musst du halt gucken ob der parameter in den arrayeinträgen vorhanden ist und wie alpines gesagt hat, dann in einen neuen array speichern. Diesen gibst du dann aus
$data = "1000|2300|1830" & @CRLF & "4444|8357|9312" ;//data from text file will be something like this
$form = GUICreate("", 300, 300)
$hListview = GUICtrlCreateListView("item1|item2|item3", 0, 0, 200, 300)
Func Update()
_GUICtrlListView_DeleteAllItems($hListview)
$str = StringSplit($data, @LF, 2)
For $i = 0 To UBound($str) - 1
GUICtrlCreateListViewItem($str[$i], $hListview)
Next
EndFunc ;==>Update
Func Filter()
if GUICtrlRead($Input) = "" then
Update()
Else
_GUICtrlListView_DeleteAllItems($hListview)
$str = StringSplit($data, @LF, 2)
For $i = 0 To UBound($str) - 1
If StringInStr($str[$i], GUICtrlRead($Input)) Then GUICtrlCreateListViewItem($str[$i], $hListview)
Next
EndIf
$data = "1000|2300|1830" & @CRLF & "4444|8357|9312" ;//data from text file will be something like this
$form = GUICreate("", 300, 300)
$hListview = GUICtrlCreateListView("item1|item2|item3", 0, 0, 200, 300)
Update()
While 1
$new = GUICTRLREAD($Input)
if $new <> $old then Filter()
$old = $new
sleep(20)
WEnd
Func Update()
_GUICtrlListView_DeleteAllItems($hListview)
$str = StringSplit($data, @LF, 2)
For $i = 0 To UBound($str) - 1
GUICtrlCreateListViewItem($str[$i], $hListview)
Next
EndFunc ;==>Update
Func Filter()
if GUICtrlRead($Input) = "" then
Update()
Else
_GUICtrlListView_DeleteAllItems($hListview)
$str = StringSplit($data, @LF, 2)
For $i = 0 To UBound($str) - 1
If StringInStr($str[$i], GUICtrlRead($Input)) Then GUICtrlCreateListViewItem($str[$i], $hListview)
Next
EndIf
EndFunc ;==>Filter
Brauche eure Hilfe Listview 05/16/2015 - .NET Languages - 1 Replies Hallo liebes ElitePVP team, ich habe mal eine frage.
Ich habe eine Listview mit ein paar einträgen, und ich möchte eine Datei hochladen, die die Spalte als Namen trägt.
Also zb das ist meine listview.
Colum1 Colum2 colum3 colum4
[Brauche Hilfe] Array in ListView 03/29/2015 - AutoIt - 3 Replies Hey EPvP
Ich wollte mal fragen, wieso dieser Code nicht geht:
#cs -------------------------------------------------- --------------------------
AutoIt Version: 3.3.10.2
Author: myName
Script Function:
[Hilfe] Listview anklicken ? 10/24/2014 - AutoIt - 4 Replies Google hat nichts gefunden.
Wie oben beschrieben möchte ich in der List einen Beitrag anklicken,aber nicht mit control click.
Greetz
Kitty
[VB.NET] listview items durchsuchen und ergebnisse ausgeben 03/20/2014 - .NET Languages - 2 Replies Hey Leute,
Also was ich hinbekommen will klingt eigentlich simpel.
Ich habe eine Listview mit tausenden Items. Eine Textbox, einen button und noch eine listview.
Ich möchte wenn ich auf den button drücke, dass das programm die erste listview in der zweiten spalte durchsucht, und die zeilen die den text der textbox beinhalten in die zweite listview anzeigen.
oder im idealfall, nur mit einer listview.. dass direkt die erste listview durchsucht wird, und NUR die ergebnisse angezeigt...
VB.net - Textdatei ergänzen Hilfe. 08/05/2013 - .NET Languages - 7 Replies Hi Leute,
mein Bruder ist im Moment am lernen von VB.net und hat ein Problem und mich gebeten hiermal danach zurfragen.
Seine Frage ist,
wie kann er in VB.net eine Textdatei ergänzen in die zuvor erstellt wurde und das ergänzende 2 Zeilenumbrüche zwischen dem letzten Eingetragenem ist ?
Den Code den er bisher geschrieben hat;
Dim dateicreator As System.IO.StreamWriter