![]() |
Anzahl eines Substrings ermitteln, schnellste Methode
Hallo,
welches wäre wohl die schnellste Methode, um zu ermitteln wie oft ein bestimmtes Wort in einem Text vorkommt? Geht da wohl was recursives? Hat jemand 'ne Idee? Gruß Gambit |
Re: Anzahl eines Substrings ermitteln, schnellste Methode
schau Dir mal JEDI an, die haben sowas drin in ihrer String Unit.
StrReplace ist zumindest 3 mal so schnell wie das von Delphi. StrStrCount dürfte daher auch schnell sein. Selber Gedanken machen würde ich mir daher nur in wichtigen Fällen und bei entsprechenden Fähigkeiten :-) |
Re: Anzahl eines Substrings ermitteln, schnellste Methode
Zitat:
Deswegen würde ich was iteratives nehmen (ggf. auch selbstgeschrieben). MfG Binärbaum |
Re: Anzahl eines Substrings ermitteln, schnellste Methode
Zitat:
Man kann z.B. den String linear mit der Funktion Pos durchsuchen und bei einem Treffer ab dieser Position weitersuchen:
Delphi-Quellcode:
Wenn es richtig schnell werden soll, dann sollte man einen
sw := 'DP'; // suchword
s := 'hier in der DP wird alles DP-like erledigt'; // suchstring found := 0; repeat p := Pos(sw, s); if p > 0 then begin inc(found); Delete(s, 1,p+Length(sw)); // alles bis einschlieslich zum Treffer löschen end; until p<=0; ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz