указанные функции реализуют основанный на
функцией STRDIFF() и всеми ATxxxx()-функциями (такими как ATNUM() и
т.п.). Исходно, указанные функции реализуют основанный на строгом
соответствии поиск подстрок. Вызов SETATLIKE(1) позволяет использовать
в выражении поиска универсальные символы, с которыми сопоставимы любые
символы в обрабатываемой строке. Однако первый символ в выражении для
поиска не может быть универсальным, как и все выражение не может
состоять только из универсальных символов, т.к. это приводит к
бесконечной рекурсии, аналогичной описанной для ATREPL().
По умолчанию в качестве универсального символа сопоставления
используется "?". Он может быть заменен (при задании параметра
<cChar>) любым желаемым символом.
Примечания
. Поддерживаемый DOS универсальный символ "*" недоступен для
указанных функций.
. Для обеспечения дальнейшего расширения допустимых режимов
<nNewMode> является параметром числового типа.
Примеры
. Поведение функций при установленном SETATLIKE() режиме поиска с
использованием универсального символа:
SETATLIKE(1)
. Определение начальной позиции последнего вхождения подстроки:
cTextseq := "ABCDEABC123AXCK"
? ATNUM("ABC", cTextseq) // 6
? ATNUM("A?C", cTextseq) // 12
. Определение количества вхождений подстроки:
cTextseq := "ABCDEABC123AXCK"
? NUMAT("ABC", cTextseq) // 2
? NUMAT("A?C", cTextseq) // 3
. Остаток строки после последнего вхождения подстроки:
cTextseq := "ABCDEABC123AXCK"
? AFTERATNUM("ABC", cTextseq) // 12AXCK
? AFTERATNUM("A?C, cTextseq) // K
. Часть строки перед последним вхождением подстроки: