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
Boyer-Moore Algorithmus einsetzen.
http://www-igm.univ-mlv.fr/~lecroq/string/node14.html