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

Остаток строки после последнего вхождения


    cTextseq := "ABCDEABC123AXCK"
    ? BEFORATNUM("ABC", cTextseq)               // ABCDE
    ? BEFORATNUM("A?C", cTextseq)               // ABCDEABC123
 
  . Остаток строки после последнего вхождения подстроки, выровненный
    по позиции 15:
 
    cTextseq := "ABCDEABC123AXCK"
    ? ATADJUST("ABC", cTextseq, 15)             // ABCDE         ABC123AXCK
    ? ATADJUST("A?C", cTextseq, 15)             // ABCDEABC123   AXCK
 
  . Функция ATREPL() создает необычную ситуацию. Если выражение поиска
    содержит универсальные символы сопоставления, то осуществляется замена


    для найденной подстроки и, если с помощью CSETATMUPA(.T.) установлен
    режим прохода по символам, начинается внутренняя рекурсия:
 
    CSETATMUPA(.T.)
    cTextseq := "ABCDEABC123AXCK"
    ? ATREPL("D?", cTextseq, "DX")              // ABCDXXXXXXXXXXXX
 
  . Использование универсального символа сопоставления уменьшает
    степень различия, определяемую функцией STRDIFF():
 
    ? STRDIFF("ABC", "AXC")                     // Степень различия 3
    ? STRDIFF("A?C", "AXC")                     // Степень различия 0
 

See Also: AFTERATNUM()
ATADJUST()
ATNUM()
ATREPL()
NUMAT()
STRDIFF()

 

 

 STRDIFF()
 Определяет степень различия двух строк ("расстояние Левенштейна").
------------------------------------------------------------------------------
 
  Синтаксис
 
    STRDIFF(<cString1>, <cString2>, [<nReplace>],
        [<nRemove>], [<nInsert>]) --> nDifferenceValue
 
  Параметры
 
    <cString1> - символьный параметр, задающий первую сравниваемую строку,
    длиной не более 254 символов, над которой в процессе анализа
    выполняются операции замены (Replace), вставки (Insert) и удаления
    (Remove) символов.
 

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