So geht's

Praxiseinsatz, Initialisierung, Suchen

Praxiseinsatz, Initialisierung, Suchen

Such-Engine im Eigenbau, Teil III  in Bildern

© Archiv

Überwachung der Hauptaktionen und der verarbeiteten Ordner im Listenfeld lstBoxInfo.

Nachdem damit das allgemeine Suchobjekt vollständig definiert ist, testen Sie es zunächst in einer einfachen Windows-Anwendung. Diese definiert grundlegende Suchoptionen auf Quelltextebene, sucht dann die Dateien entsprechend diesen Suchoptionen und gibt das Suchergebnis über einen einfachen Windows-Dialog aus.

Das Beispielprojekt heißt FileSearchDemo, welches Sie über die gleichnamige Solutiondatei in die Entwicklungsumgebung von Visual Studio laden. Im Beispielprojekt finden Sie die Klasse FileSearchObj, über die das allgemeine Suchobjekt definiert ist sowie die Formularklasse frmDemo, die den eigentlichen Ausgabedialog definiert.

Der Ausgabedialog enthält drei Listenfelder, welche die allgemeinen Informationen, die aktuell verarbeiteten Dateien sowie die nach den Suchoptionen gefundenen Dateien aufnehmen. Über gesonderte Bezeichnungsfelder im unteren Bereich des Dialogfeldes werden die Anzahl der verarbeiteten Dateien sowie die Anzahl der gefundenen Dateien ausgegeben.

Die Initialisierung des Suchobjektes erfolgt beim Laden des Ausgabedialoges über die Ereignisprozedur Form1_Load. Darüber wird zunächst ein neues Suchobjekt vom Typ FileSearchObj instanziert und der zugehörige Objektverweis in der Variablen obj gesichert.

Um auf die Ereignisse des Suchobjektes zu reagieren, werden die objektspezifischen Ereignisbehandlungsroutinen mit AddHandler-Anweisungen sowie dem AddressOf-Operator auf entsprechende Prozeduren der Formulardatei umgeleitet. Um die Bezüge einfach herzustellen, wurden die Prozedurnamen der Ereignisse im Suchobjekt und in der Formulardatei einheitlich benannt.

Private Sub Form1_Load _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
Dim obj As New FileSearchObj
AddHandler obj.AnalyseFile,
AddressOf AnalyseFile
AddHandler obj.NewFile,
AddressOf NewFile
AddHandler obj.NewPath,
AddressOf NewPath
AddHandler obj.SearchBegin,
AddressOf SearchBegin
AddHandler obj.SearchEnd,
AddressOf SearchEnd
AddHandler obj.SuffixChanged,
AddressOf SuffixChanged
AddHandler obj.FoundEntriesCounter,
AddressOf FoundEntriesCounter
AddHandler obj.EntriesCounter,
AddressOf EntriesCounter
Such-Engine im Eigenbau, Teil III  in Bildern

© Archiv

Überwachung der verarbeiteten Dateien im Listenfeld lstBoxFiles.

Sind die Ereignisbehandlungsroutinen zugewiesen, bestimmen Sie über die Eigenschaften des Suchobjektes die Suchoptionen. Das Beispiel sucht nach Textdokumenten mit den Dateikürzeln doc, txt und log, wobei die rekursive Suche im Wurzelverzeichnis von Laufwerk C:\ beginnt.

Auf Vorgaben für Dateinamen, Dateigrößen, Dateiattribute und Datumsstempel verzichtet das Beispiel ebenso wie auf die Suche nach in den Dateien enthaltenen Wörtern oder Wortlisten. Doch diese Eigenschaften lassen sich manuell bearbeiten und nach Bedarf definieren.

Um die Verarbeitungsdauer einzuschränken, beschränkt das Beispiel die Anzahl der maximal zurückzuliefernden Dateien, die den angegebenen Suchkriterien entsprechen, auf den Wert 1000. Die Suche startet dann über die Methode DoSearch des Suchobjektes. Die letztgenannte Methode liefert die Ergebnisse sowie Informationen ereignisorientiert zurück.

...
With obj
.StartPath = "C:\"
.Suffix = "doc|txt|log" ,"*.*"
.AnalyseSubDirectories = True
.FileName = ""
.FileNameIsPartial = True
.MinSize = -1
.MaxSize = -1
.Attributes = ""
.TimeAnalysis =
FileSearchObj.eTimeStampType.None
.Day = 0
.Month = 0
.Year = 0
.LookForWords = False
.DifferenceByUpperLower = False
.WordList = ""
.MaxEntries = 1000
.DoSearch()
End With
...

Ist die Dateisuche abgeschlossen, werden die Verbindungen zu den Ereignisbehandlungsroutinen des Suchobjektes wieder gelöst.

...
RemoveHandler obj.AnalyseFile,
AddressOf AnalyseFile
RemoveHandler obj.NewFile,
AddressOf NewFile
RemoveHandler obj.NewPath,
AddressOf NewPath
RemoveHandler obj.SearchBegin,
AddressOf SearchBegin
RemoveHandler obj.SearchEnd,
AddressOf SearchEnd
RemoveHandler obj.SuffixChanged,
AddressOf SuffixChanged
RemoveHandler obj.FoundEntriesCounter,
AddressOf _
FoundEntriesCounter
RemoveHandler obj.EntriesCounter,
AddressOf EntriesCounter
End Sub

Mehr zum Thema

HTML 5
Webgestaltung

Google Web Designer ist spezialisiert auf HTML5. Ein Vorteil dieses Standards ist das einfache Einbinden von Videos mit dem Element video. Wir zeigen…
Wir verraten, wie Sie Fritzboxen und andere Router vor Hackern schützen.
Fritzbox, Asus, Belkin und Co.

Fritzbox, Asus, Belkin oder DLink - die Liste der geknackten Router ist lang. Hacker stahlen Passwörter oder NAS-Daten. So machen Sie Ihren Router…
Wir führen Sie zur eigenen Windows-App - unserem PC-Magazin-RSS-Feed.
C# und XAML

Wir zeigen, wie Sie Windows 8.1 Apps selbst programmieren können. Lernen Sie das App erstellen an Hand unseres Beispiels: dem RSS-Feed von PC…
Windows Tipps & Tricks: Benutzerrechte unter Windows 8.1
Programme richtig installieren

Wir zeigen Ihnen, wie Sie sich unter Windows 8.1 alle Benutzerrechte verschaffen und Programme richtig installieren.
Windows 8: Starbildschirm
Microsoft Project Siena

Erstellen Sie sich selbst eine App für Windows 8, die auf alle Funktionen Ihres Tablets zugreifen kann, inklusive Kamera, Mikrofon und Lautsprecher.…