Suchen von Strings in Strings

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6780
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Suchen von Strings in Strings

Beitrag von af0815 »

Ich habe eine Stringlist mit ein paar tausend längeren Strings aus einem csv-Import (Liste A). Und eine kleine Stringlist mit kürzeren Begriffen die in der anderen Liste suchen will (gespeichert - daraus mache ich dann Kategorien - Liste B).

Der Begriff aus B kann irgendwo im String aus der Liste A vorhanden sein. Es geht also nicht mit vorsortieren oder Anfangsbuchstaben etc.

Gibt es einen effizienteren Ansatz als jeden Eintrag aus der B in jedem Eintrag aus A zu suchen ? (Das ist nicht das Problem :D )
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10872
Registriert: Mo 11. Sep 2006, 19:01

Re: Suchen von Strings in Strings

Beitrag von theo »

af0815 hat geschrieben: Der Begriff aus B kann irgendwo im String aus der Liste A vorhanden sein. Es geht also nicht mit vorsortieren oder Anfangsbuchstaben etc.
Wenn es Sätze aus einzeln Wörtern sind, diese aufspalten und dann sortieren vielleicht.

martin_frb
Beiträge: 586
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: Suchen von Strings in Strings

Beitrag von martin_frb »


Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6780
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Suchen von Strings in Strings

Beitrag von af0815 »

martin_frb hat geschrieben:http://en.wikipedia.org/wiki/Aho-Corasick_string_matching_algorithm
Danke für den Input. So wie es aussieht, werde ich mit brute-force anfangen :D (wie geplant) und mal sehen wie sich das Laufzeitverhalten und die Daten entwickeln.

Die Übersicht String searching algorithm ist recht gut.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten