Существует ли эффективная функция поиска по всему слову в 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 сначала не ищет слово, а затем проверяет разделители. Вместо этого он просматривает символы строки по одному в поисках разделителя. Если он находит один, он проверяет строку и другой разделитель. Если он не находит его, он ищет другой разделитель. Ради эффективности, это очень умно!