Olaf Doschke: wie oft kommt string x in string y vor?

Beitrag lesen

Hallo Quentin!

jetzt möchte ich aber herausfinden, wie oft ein bestimmtes

wort "asdf" (als beispiel, wieviele lyrics mit dem wort asdf gibts denn schon ;) in dem text vorkommt... der text selbst befindet sich in einer datenbank und wird natürlich über ein recordset angesprochen...

als simples beispiel: "das ist ein text, ein kurzer" und ich suche nach "ein"

herauskommen soll die zahl 2, da ja "ein" zweimal vorkommt ;)

könnt ihr mir da bitte helfen?

Man nehme sich einen Record, bzw. einen Text, der nach einem Wort durchsucht werden soll in einen String.

Dort kann man dann mit instr(string,"ein") nach der Position des ersten "ein" innerhalb des Strings suchen.

Soll die Groß-/Kleinschreibung keine Rolle spielen hilft sowas wie instr(Ucase(string),Ucase("ein")) bzw. instr(Ucase(string),"EIN")

Danach schneidet man den linken Teil des Strings inklusive dem "ein" ab und sucht im Rest wieder nach dem 1. ein...

etwa so:
pos1=instr(string,"ein")
string = right(string,len(string)- pos1 + 1 - len("ein"))

Gibt instr() 0 zurück, so existiert das gesuchte Wort nicht mehr und die Schleife wäre beendet.

Ausprogrammieren tue ich das jetzt nicht. Es ist auch nicht unbedingt das schnellste, funktioniert aber.

Was anderes wäre es, Du möchtest eine Statistik über alle im Text enthaltenen Worte... dann würde ich den Text in Worte zerteilen, die gefundenen Worte dann in ein Array speichern und falls es dort schon vorhanden wäre das Vorkommen hochzählen. Das wäre allerdings noch lahmer, wenn es einem im Endeffekt nur um ein Wort geht.