Hallo
Ich brauche mal wieder eure Hilfe.
Habe folgende Situation:
Ich habe eine Textdatei in der z.B. folgendes steht.Hier steht nur eine Zeile. Es sind etliche Zeilen in der Datei aber mit immer unterschiedlichen Orten usw.
Tel.:08152/12882-11 Maschnr.:14 Typ:Borhmaschine Kunde:Müller GmbH Strasse:Bonner Straße 257 Plz.:23232 Ort:Köln Land:DE
Habe mir jetzt folgendes Script gebastelt:
Spoiler anzeigen
Global $suchtext
Global $gesamttext
$gesamttext = ""
If Not IsDeclared("sInputBoxAnswer") Then Local $suchtext
$suchtext = InputBox("Kundensuche","Wonach soll gesucht werden?",""," ","-1","-1","-1","-1")
Select
Case @Error = 0 ;OK - The string returned is valid
suchen()
Case @Error = 1 ;The Cancel button was pushed
Exit
Case @Error = 3 ;The InputBox failed to open
MsgBox(0,"Kundensuche", "Fehler beim eingeben des Suchtextes aufgetreten")
Exit
EndSelect
func suchen()
$file = FileOpen(@ScriptDir & "\Maschinennummern mit Adresse und Telefon.txt", 0)
If $file = -1 Then
MsgBox(0, "Fehler beim öffnen der Datei:", @ScriptDir & "\Maschinennummern mit Adresse und Telefon.txt")
Exit
EndIf
While 1
$line = FileReadLine($file)
If @error = -1 Then ExitLoop
if StringInStr($line,$suchtext) >= 1 Then
$gesamttext = $gesamttext & $line & chr(10)
EndIf
Wend
if $gesamttext <> "" Then
MsgBox(262144,"Gefunden",$gesamttext)
Else
MsgBox(0,"Nichts gefunden mit folgendem Text",$suchtext)
EndIf
EndFunc
Mit diesem Script kann ich z.B. alle Zeilen in der Messagebox ausgeben indem sich der Begriff befindet den ich suche.
Da wird aber alles unübersichtlich in einer Textbox untereinandergeschrieben.
Jetzt möchte ich das in eine Listbox satt in einer Messagebox ausgeben.
Habe mir folgendes Script geschrieben mit einer Gui und passender Listbox.
Spoiler anzeigen
#include <GUIConstants.au3>
Opt("GUIOnEventMode", 1)
$form_ergebnis = GUICreate("Kundensuche Ergebnis", 1005, 171, 5, 500, -1, BitOR($WS_EX_TOOLWINDOW,$WS_EX_TOPMOST,$WS_EX_WINDOWEDGE))
GUISetOnEvent($GUI_EVENT_CLOSE, "form_ergebnisClose")
$gefundenliste = GUICtrlCreateListView("Telefon|MaschNr.|Typ|Kunde|Strasse|Plz|Ort|Land", 8, 8, 985, 153)
$gefundenliste_0 = GUICtrlCreateListViewItem("1-Telefon|1-Maschinennummer|1-Typ|e-Kunde|1-strasse|1-plz|1-ort|1-land", $gefundenliste)
$gefundenliste_1 = GUICtrlCreateListViewItem("2-telefon|2-maschinennummer|2-Typ|e-Kunde|2-strasse|2-plz|2-ort|2-land", $gefundenliste)
GUICtrlSetOnEvent(-1, "gefundenlisteClick")
GUISetState(@SW_SHOW)
While 1
Sleep(100)
WEnd
Func form_ergebnisClose()
Exit
EndFunc
Func gefundenlisteClick()
EndFunc
[/autoit]
Wie bekomme ich jetzt die Listbox mit meinen gefundenen Zeilen aus dem ersten Script in meine Listbox.
Ich könnte ja
$gefundenliste_0 = GUICtrlCreateListViewItem($var1 & "|" & $var2 &"|" & ...usw. , $gefundenliste)
[/autoit]
programmieren. Dann für die nächste gefundene Zeile mit $gefundenliste_1 usw. weitermachen.
Das ist aber sehr Müheselig und mit Sicherheit nicht elegant. Wie ich Autoit kenne geht das mit Sicherheit besser.
Da ich auch nicht vorhersagen kann wieviele Zeilen mit dem gewünschten Text gefunden werden, weiss ich bei meiner Müheseligen Variante auch nicht wieviele $gefundenliste_... ich programmieren soll.
Bin wie immer um Hilfen sehr dankbar.
Gruß Autoirrer