AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

mehrere strings im String suchen

Ein Thema von fr4gz · begonnen am 28. Aug 2008 · letzter Beitrag vom 29. Aug 2008
Antwort Antwort
fr4gz

Registriert seit: 1. Aug 2008
12 Beiträge
 
#1

mehrere strings im String suchen

  Alt 28. Aug 2008, 22:32
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: mehrere strings im String suchen

  Alt 28. Aug 2008, 22:36
Du benötigst ein Pos()-Aufruf pro Suchbegriff. Du kannst die Begriffe natürlich in einen Array oder eine Liste ablegen
Markus Kinzler
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#3

Re: mehrere strings im String suchen

  Alt 28. Aug 2008, 22:39
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.
Fridolin Walther
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#4

Re: mehrere strings im String suchen

  Alt 28. Aug 2008, 22:48
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).
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: mehrere strings im String suchen

  Alt 28. Aug 2008, 22:49
Kommt auf die Implementierung an
Markus Kinzler
  Mit Zitat antworten Zitat
fr4gz

Registriert seit: 1. Aug 2008
12 Beiträge
 
#6

Re: mehrere strings im String suchen

  Alt 28. Aug 2008, 22:55
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: mehrere strings im String suchen

  Alt 28. Aug 2008, 22:57
Jein. Nur für die Einträge, die der Vorgängerbegriff enthalten.
Markus Kinzler
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#8

Re: mehrere strings im String suchen

  Alt 28. Aug 2008, 23:00
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...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: mehrere strings im String suchen

  Alt 28. Aug 2008, 23:24
Willst du eine AND oder OR-Verknüpfung der Suchbegriffe?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi
Online

Registriert seit: 17. Jul 2005
880 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: mehrere strings im String suchen

  Alt 29. Aug 2008, 08:28
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.
The angels have the phone box.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:55 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