Клиппер 5. Справочник

указанные функции реализуют основанный на


    функцией 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
 
  . Часть строки перед последним вхождением подстроки:
 

Содержание раздела