Существует ли эффективная функция поиска по всему слову в Delphi?

В Delphi 2009 или более поздней версии (Unicode) есть ли какие-либо встроенные функции или небольшие подпрограммы, написанные где-нибудь, которые будут выполнять достаточно эффективный поиск по всему слову, где вы предоставляете разделители, которые определяют слово, например:

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;

где:

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

Мне нужно только это, чтобы вернуть истинное или ложное значение, если «Слово» находится в строке.

Где-то должно быть что-то для этого, потому что в стандартном диалоге поиска в качестве одного из вариантов есть «Совпадение всего слова».

Как это обычно (или лучше) реализовано?

Заключение:

Ответ RRUZ был идеальным. Процедура SearchBuf была именно тем, что мне было нужно. Я даже могу войти в подпрограмму StrUtils, извлечь код и изменить его в соответствии со своими требованиями.

Я был удивлен, обнаружив, что SearchBuf сначала не ищет слово, а затем проверяет разделители. Вместо этого он просматривает символы строки по одному в поисках разделителя. Если он находит один, он проверяет строку и другой разделитель. Если он не находит его, он ищет другой разделитель. Ради эффективности, это очень умно!

Ответы на вопрос(4)

Ваш ответ на вопрос