Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Anzahl eines Substrings ermitteln, schnellste Methode

  Alt 11. Apr 2005, 15:29
Zitat von Gambit:
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?
"was recursives" wäre hier ganz fehl am Platz.
Man kann z.B. den String linear mit der Funktion Pos durchsuchen und bei einem Treffer ab dieser Position weitersuchen:
Delphi-Quellcode:
 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;
Wenn es richtig schnell werden soll, dann sollte man einen Bei Google suchenBoyer-Moore Algorithmus einsetzen.
http://www-igm.univ-mlv.fr/~lecroq/string/node14.html
Andreas
  Mit Zitat antworten Zitat