|
You last visited: Today at 20:41
Advertisement
[Hilfe]ListView bzw Textdatei durchsuchen
Discussion on [Hilfe]ListView bzw Textdatei durchsuchen within the AutoIt forum part of the Coders Den category.
05/20/2015, 17:15
|
#1
|
elite*gold: 0
Join Date: Feb 2011
Posts: 161
Received Thanks: 16
|
[Hilfe]ListView bzw Textdatei durchsuchen
Hallo EPvP
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...
Hoffe ihr könnt mir helfen.
|
|
|
05/20/2015, 17:40
|
#2
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
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.
|
|
|
05/20/2015, 17:44
|
#3
|
elite*gold: 0
Join Date: Feb 2011
Posts: 161
Received Thanks: 16
|
Okay, danke
Da ich mich noch nicht so lange mit AutoIt auseinandersetze, hast du evtl. ein Beispiel?
|
|
|
05/20/2015, 18:03
|
#4
|
elite*gold: 138
Join Date: Apr 2012
Posts: 3,494
Received Thanks: 1,769
|
Quote:
Originally Posted by surorek5
Okay, danke
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
|
|
|
05/20/2015, 18:51
|
#5
|
elite*gold: 0
Join Date: Apr 2011
Posts: 363
Received Thanks: 167
|
I think u want to do something like this..., then its not the best way to do it but it works haha..
Code:
#include <GuiListView.au3>
$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($data) //delete all items and refresh them...
$Input = GUICtrlCreateInput("", 205, 50, 90, 20)
GUISetState()
Func Update($data)
_GUICtrlListView_DeleteAllItems($hListview)
$str = StringSplit($data, @LF, 2)
For $i = 0 To UBound($str) - 1
GUICtrlCreateListViewItem($str[$i], $hListview)
Next
EndFunc ;==>Update
Func Filter($data, $search)
_GUICtrlListView_DeleteAllItems($hListview)
$str = StringSplit($data, @LF, 2)
For $i = 0 To UBound($str) - 1
If StringInStr($str[$i], $search) Then GUICtrlCreateListViewItem($str[$i], $hListview)
Next
EndFunc ;==>Filter
While Sleep(20)
$read = GUICtrlRead($Input)
If $read <> "" Then
Filter($data, $read)
Else
Update($data)
EndIf
WEnd
|
|
|
05/21/2015, 16:28
|
#6
|
elite*gold: 0
Join Date: Aug 2010
Posts: 489
Received Thanks: 70
|
Hier mit ENTER - Taste
Habe elmarcia's Code angepasst.
#include <GuiListView.au3>
#include <GUIConstants.au3>
Opt("GUIOnEventMode", 1)
$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()
$Input = GUICtrlCreateInput("", 205, 50, 90, 20)
GUICtrlSetOnEvent($Input,"FILTER")
GUISetState()
GUISetOnEvent ($GUI_EVENT_CLOSE, "_Exit")
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
While 1
sleep(50)
WEnd
func _Exit()
Exit
EndFunc
|
|
|
05/21/2015, 16:42
|
#7
|
elite*gold: 0
Join Date: Feb 2011
Posts: 161
Received Thanks: 16
|
Danke euch, ich werde mich mal mit euren Anregungen auseinandersetzten
|
|
|
05/21/2015, 16:55
|
#8
|
elite*gold: 0
Join Date: Aug 2010
Posts: 489
Received Thanks: 70
|
und noch mal ohne ENTER
#include <GuiListView.au3>
#include <GUIConstants.au3>
#include <Misc.au3>
$old = ""
Opt("GUIOnEventMode", 1)
$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()
$Input = GUICtrlCreateInput("", 205, 50, 90, 20)
GUICtrlSetOnEvent($Input,"FILTER")
GUISetState()
GUISetOnEvent ($GUI_EVENT_CLOSE, "_Exit")
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
func _Exit()
Exit
EndFunc
|
|
|
05/21/2015, 21:56
|
#9
|
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
|
#closed (on request)
|
|
|
 |
Similar Threads
|
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
|
All times are GMT +1. The time now is 20:42.
|
|