Gibt es in Delphi eine effiziente Suchfunktion für ganze Wörter?

Gibt es in Delphi 2009 oder höher (Unicode) integrierte Funktionen oder kleine Routinen, die eine einigermaßen effiziente Suche nach ganzen Wörtern durchführen, bei der Sie die Trennzeichen angeben, die das Wort definieren, z.

function ContainsWord(Word, Str: string): boolean;

const  { Delim holds the delimiters that are on either side of the word }
  Delim = ' .;,:(){}"/\<>!?[]'#$91#$92#$93#$94'-+*='#$A0#$84;

woher:

Word: string;  { is the Unicode string to search for }
Str: string;   { is the Unicode string to be searched }

Ich brauche dies nur, um einen wahren oder falschen Wert zurückzugeben, wenn sich das "Wort" in der Zeichenfolge befindet.

Irgendwo muss etwas dafür sein, da der Standard-Suchdialog "Nur ganzes Wort suchen" als eine seiner Optionen hat.

Wie wird das normalerweise (oder am besten) umgesetzt?

Fazit:

Die Antwort von RRUZ war perfekt. Die SearchBuf-Routine war genau das, was ich brauchte. Ich kann sogar die StrUtils-Routine aufrufen, den Code extrahieren und an meine Anforderungen anpassen.

Es hat mich überrascht, dass SearchBuf nicht zuerst nach dem Wort sucht und dann nach Trennzeichen sucht. Stattdessen werden die Zeichen der Zeichenfolge einzeln nach einem Begrenzer durchsucht. Wenn es einen findet, wird nach dem String und einem weiteren Begrenzer gesucht. Wenn es es nicht findet, sucht es nach einem anderen Begrenzer. Aus Effizienzgründen ist das sehr klug!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage