Czy w Delphi istnieje wydajna funkcja wyszukiwania całego słowa?

W Delphi 2009 lub nowszym (Unicode) są jakieś wbudowane funkcje lub małe procedury napisane gdzieś, które wykonają dość wydajne wyszukiwanie całego słowa, w którym podaje się ograniczniki definiujące słowo, np .:

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;

gdzie:

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

Potrzebuję tego tylko, aby zwrócić wartość true lub false, jeśli „Słowo” znajduje się w ciągu.

Musi być gdzieś coś, ponieważ standardowa funkcja Znajdź Dialog ma „Dopasuj tylko całe słowo” jako jedną z jego opcji.

Jak to normalnie (lub najlepiej) jest realizowane?

Wniosek:

Odpowiedź RRUZ była idealna. Procedura SearchBuf była właśnie tym, czego potrzebowałem. Mogę nawet przejść do procedury StrUtils, wyodrębnić kod i zmodyfikować go, aby pasował do moich wymagań.

Zaskoczyło mnie, że SearchBuf nie szuka najpierw słowa, a następnie szuka ograniczników. Zamiast tego przechodzi przez znaki łańcucha po jednym szukając ogranicznika. Jeśli go znajdzie, sprawdza ciąg i inny ogranicznik. Jeśli go nie znajdzie, szuka innego ogranicznika. Ze względu na wydajność, to bardzo mądre!

questionAnswers(4)

yourAnswerToTheQuestion