Hallo zusammen,
bis jetzt hatte mir das Suchen innerhalb xList-Abkömmlingen über
pos gereicht. Auch bei 30.000 Einträgen ist das Ganze noch ziemlich flott.
Nun nutzen die Anwemder mein Tool anders wie geplant
und lesen sich alle Dateien aller möglichen Partitionen in eine TStringList ein....
(zw. 100.000 - 600.000 Einträgen!!!)
Hier genügt das oben genannte Suchverfahren aus zeitlichen Gründen nicht mehr.
Jetzt habe ich schon einiges gelesen, u.a. über Boyer-Moore mit teilweise auch widersprüchlichen Anwendungsempfehlungen.
Man kann da sehr viel lesen.
Durch die Komplexität fällt es mir schwer zu erkennen, welches Verfahren für meine Anforderungen nun zu empfehlen ist.
Hier bräuchte ich Eure Ratschläge.
Meine Vorgaben sind:
- es wird immer nur mit 1 Suchwort gesucht
- gefunden werden sollen dann alle Vorkommen (Suchwort=
ich wird auch in n
icht gefunden)
- die zu durchsuchenden Strings sind Dateinamen von Dateien
- jeder Treffer muss in eine Listbox "landen"
- ab dem 3. Buchstaben wird erst angefangen zu suchen
Meine Fragen:
1.) welche Datenhaltung ist hier zu empfehlen? Im Moment findet diese in 2 TStringList statt (1 TStringList für Pfad + Dateiname, in der 2. TStringList stehen nur die Dateinamen, die zu durchsuchen sind).
2.) welcher Such-Algorithmus ist zu empfehlen?
3.) Gelesen hatte ich auch oft von sortierten (?) Array. Spielt das hier überhaupt eine Rolle? Die Daten in der TStingList sind nach Dateiname sortiert. Das Suchwort kann ja überall vorkommen.
Vielen Dank schon mal für Eure Unterstützung!