Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi mehrere strings im String suchen (https://www.delphipraxis.net/119593-mehrere-strings-im-string-suchen.html)

fr4gz 28. Aug 2008 21:32


mehrere strings im String suchen
 
Guten abend :)

Ich suche mittels pos() in der geladenen filelistbox,
nach dem wort "test". Wurde ein dateiname mit dem wert gefunden..wird es in die Listbox geladen.

Ok
Code:
for i := 0  to FileListBox1.Count-1 do
begin
     if pos('test',FileListBox1.Items.Strings[i]) <> 0 then
     ListBox3.Items.Add(FileListBox1.Items.Strings[i]);
end;
funktioniert auch sehr gut..

Aber wie kann ich jetz mehrere suchbegriffe angeben .. damit es zusätzlich auch noch nach dem wort "text" sucht bzw prüfft.

Kann ich eine so Art Arrayliste erstellen für die Suchbegriffe?


grüße

mkinzler 28. Aug 2008 21:36

Re: mehrere strings im String suchen
 
Du benötigst ein Pos()-Aufruf pro Suchbegriff. Du kannst die Begriffe natürlich in einen Array oder eine Liste ablegen

Fridolin Walther 28. Aug 2008 21:39

Re: mehrere strings im String suchen
 
Alternativ kannst Du auch eine eigene POS Variante bauen, die ein array of string akzeptiert als Parameter. Wäre insbesondere bei einer großen Menge an Strings definitiv performanter.

grenzgaenger 28. Aug 2008 21:48

Re: mehrere strings im String suchen
 
das käme in etwa aufs selbe raus, er muss durch liste a und durch liste b also
Delphi-Quellcode:
for eA in A do
  for eB in B do
    something();
anderes wäre es, wenn er die suchliste bereits vorsortiert und weitere informationen darin speichert, damit er ab den delta eintrag einen neuen pfad beschreidet... aber das wäre schon viel aufwändiger umzusetzen und nicht in 1 minute erledigt (wie das oben).

mkinzler 28. Aug 2008 21:49

Re: mehrere strings im String suchen
 
Kommt auf die Implementierung an

fr4gz 28. Aug 2008 21:55

Re: mehrere strings im String suchen
 
mh

also muss ich für jeden suchbegriff eine eigene pos() funktion aufrufen ?

mh ich will die suchbegriffe aber irgendwie in einem .*txt angeben ohne das script zu erweitern..
mh geht das nicht?

mkinzler 28. Aug 2008 21:57

Re: mehrere strings im String suchen
 
Jein. Nur für die Einträge, die der Vorgängerbegriff enthalten.

grenzgaenger 28. Aug 2008 22:00

Re: mehrere strings im String suchen
 
und, wo liegt das problem?
Delphi-Quellcode:
sl_suchbegriffe.loadfromfile(blabla);
for s in sl_suchbegriffe.items do
  for f in filelistbox.items do
   if pos(s in f) then add(f to listbox);
hier mal 'n pseudocode...

mkinzler 28. Aug 2008 22:24

Re: mehrere strings im String suchen
 
Willst du eine AND oder OR-Verknüpfung der Suchbegriffe?

Gausi 29. Aug 2008 07:28

Re: mehrere strings im String suchen
 
Wenn du viele Strings simultan suchen willst, dann gibt es dafür spezielle Suchalgorithmen. Einer davon wurde von Wu & Manber entwickelt, der sich als einer der schnellsten herausgestellt hat. Eine Implementierung findet sich hier. Kann sich ab ca. 10 gleichzeitig zu suchenden Strings lohnen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz