Обновлено 26.08.2019

Функции над строками

Функции над строками в алфавитном порядке:

  1. ALLTRIM(вырC)
  2. Функция ALLTRIM возвращает заданное символьное выражение, у которого отсечены как ведущие, так и завершающие пробелы.

    Эта функция полезна для полной гарантии того, что введенные пользователем данные не имеют нежелательных пробелов в начале и в конце, до использования этих данных в последующих командах.

  3. AT(вырC1,вырC2)
  4. Функция AT выполняет поиск позиции, с которой вырC1 начинается в вырC2 и возвращает номер позиции.

    Если вырC1 не встречается в вырC2, функция возвращает нулевое значение.

    AT("gh", "defghij") вернет 4.

  5. ATC(вырC1,вырC2[,вырN])
  6. Функция ATС выполняет поиск позиции, с которой вырC1 начинается в вырC2 и возвращает номер позиции. Если вырC1 не встречается в вырC2, функция возвращает нулевое значение.

    Функция ATC() имеет в качестве аргументов две символьные строки или два символьных выражения. В отличие от функции AT(), функция ATC() не чувствительна к регистру буквенных символов.

    Если задан третий (необязательный) параметр в виде числового выражения, то ведется поиск соответствующей по порядку реализации вырС1 в вырС2.

    вырС2 может быть текстовым полем.

  7. CHR(вырN)
  8. Функция CHR оценивает заданное вырN и возвращает символ, у которого код ASCII соответствует этому числу (результату выражения)

    CHR(83) returns 'S'

  9. CHRTRAN(вырC1, вырС2, вырС3)
  10. Функция CHRTRAN выполняет перекодировку выражения, заданного в вырС1, используя вырС2 и вырС3 в качестве таблиц перекодировки.

    Все позиции, занимаемые в вырС1 первым символом из вырС2 заменяются первым символом из вырС3, второй символ из вырС2 заменяется в вырС1 вторым символом из вырС3 и т.д. Если вырС3 содержит меньше символов, чем вырС2, то "лишние" символы из вырС2 заменяются в вырС1 пустыми символами (удаляются).

    Если вырС3 содержит больше символов, чем вырС2, то "лишние" символы в вырС2 игнорируются.

  11. EMPTY(выр)
  12. Функция EMPTY возвращает логическое значение истина .T., если заданное выражение является "пустым". Функция будет возвращать .T., если следующие типы данных соответственно имеют значения:

    Символьный - Пустое значение, пробелы, символы табуляции, символы возврата каретки и перевода строки, а также их комбинации

    Числовой - 0

    Дата - Пустое значение т.е. CTOD("")

    Логический - Ложь .T.

    Текстовый - Пустой (нет содержания)

    Если выражение не "пустое", возвращается .F.

  13. ISALPHA(вырC)
  14. Возвращает логическое значение "истина" (.T.), если заданное вырC начинается с прописной или строчной буквы. Возвращаемое значение - логическое

    Если заданное вырC начинается с любого другого символа, функция возвращает значение "ложь" (.F.).

  15. ISDIGIT(вырC)
  16. Возвращает .T., если вырC начинается с цифры. Возвращаемое значение - логическое

  17. ISLOWER(вырC)
  18. Возвращает .T., если вырC начинается со строчной (нижнего регистра) буквы. Возвращаемое значение - логическое

  19. ISUPPER(вырC)
  20. Возвращает .T., если вырC начинается с Прописной (верхнего) буквы. Возвращаемое значение - логическое

  21. LEFT(вырC, вырN)
  22. Возвращает указанное число символов, начиная с самого левого символа в вырC. Возвращаемое значение - символьное. Символьное выражение вырС может быть символьной строкой, именем текстового поля или именем символьного поля.

    Числовое выражение определяет количество символов, которое нужно выделить из символьного выражения. Функция LEFT() позволяет выделить первую часть символьной строки. Это то же самое, что делает функция SUBSTR с позиции 1 и количеством символов, указанном в вырN. Если числовое выражение равно 0 или отрицательно, то функция возвращает нулевую строку. Если цифровое значение больше, чем длина символьного выражения, то функция возвращает всю строку.

    LEFT("xyzabc", 3) вернет 'xyz'.

  23. LEN(вырC)
  24. Функция LEN возвращает длину символьного выражения вырС Возвращаемое значение - числовое

  25. LOWER(вырC)
  26. Функция LOWER преобразует все прописные буквы вырC в строчные. Возвращаемое значение - символьное

  27. LTRIM(вырC)
  28. Удаляет ведущие пробелы в заданном символьном выражении. Возвращаемое значение - символьное

    Использовать функцию LTRIM() рекомендуется для удаления ведущих пробелов, которые получаются как результат функции STR().

  29. OCCURS(вырC1, вырC2)
  30. Возвращает число, означающее, сколько раз одно символьное выражение встретилость в другом. Возвращаемое значение - числовое

    вырC1 Выражение для поиска. expC2 выражение, в котором выполняется поиск.

  31. PADC(выр, вырN[, вырС]) или PADL(выр, вырN[, вырС]) или PADR(выр, вырN[, вырС])
  32. Возвращают в виде символьной строки заданное первым аргументом выражение, дополненное третьим аргументом до длины, заданной вторым аргументом. Возвращаемое значение - символьное

    Если длина выражения больше вырN, выражение усекается справа до заданной величины. Если задан третий аргумент вырС, то его повторения используются для дополнения исходного выражения до требуемой длины , иначе используется символ пробела (код 32).

    PADL() вставляет символы-заполнители слева, PADR() - справа, а PADC() с обеих сторон.

    В качестве первого аргумента можно задавать символьные, числовые и выражения типа дата.

  33. PROPER(вырС)
  34. Возвращает заданное вырС, преобразуя в нем первую букву каждого слова в прописную, а остальные в строчные. Возвращаемое значение - символьное

  35. RAT(вырС1, вырС2)
  36. Функция RAT (реверсивное AT) просматривает ВырС2, начиная справа и двигаясь налево, пытаясь при этом обнаружить подстроку, заданной в вырС1.

    Возвращаемое значение - числовое. вырС2 может быть текстовым полем.

    Функция похожа на AT(), за тем исключением, что последняя ведет поиск слева направо.

    RAT( "ab", "abzaba" ) вернет 4.

  37. REPLICATE(вырC, вырN)
  38. Повторяет заданное вырC столько раз, сколько указано в вырN.

  39. RIGHT(вырC, вырN)
  40. Функция RIGHT Возвращает указанное в вырN число символов, начиная с самого правого символа в вырC или символьной временной переменной.

    Если вырN равно 0 или отрицательно, функция возвращает пустую строку.

    Если вырN больше чем длина вырC, функция RIGHT() возвращает всю строку.

    RIGHT("xyzabc", 3) вернет 'abc'.

  41. RTRIM(вырC) или TRIM(вырC)
  42. Функция TRIM обрезает хвостовые пробелы из заданной строки символов. Возвращаемое значение - символьное

    Если вырC целиком состоит из пробелов, функция возвращает пустую строку.

  43. SPACE(вырN)
  44. Функция SPACE возвращает строку символов, состоящую из заданного вырN числа пробелов.

  45. STR(вырN1[, вырN2[, вырN3]])
  46. Функция STR преобразует числовое выражение в символьную строку. Может иметь 1, 2 или 3 аргумента.

    Функция конвертирует вырN1 в строку заданной в вырN2 длины. Если указан аргумент вырN3, в символьную строку включается заданное этим аргументом число десятичных знаков. Длина строки вырN2 в этом случае должна учитывать десятичную точку и соответствующее число десятичных знаков.

    Если в вырN2 указать длину, которая больше, чем количество цифр слева от десятичной точки, функция заполняет старшие позиции пробелами. Если же указанная длина меньше этого числа цифр, функция возвращает строку звездочек (*), сигнализируя этим переполнение.

    Если в вырN3 указать меньше десятичных позиций, чем имеется в числе, лишние цифры усекаются. вырN2 должна учитывать вырN3.

  47. STRTRAN(вырC1, вырС2[, вырС3][, вырN1][, вырN2])
  48. Функция STRTRAN() возвращает строку символов, полученную из заданного выражения вырС1, в котором одна или несколько реализаций подстроки вырС2 заменены подстрокой вырС3. Замена начинается с вырN1-ой по счету реализации и производится вырN2 раз. Если вырС3 отсутствует, вырС2 заменяется пустой строкой (удаляется). Если не задано вырN1, подразумевается замена с 1 реализации.

    Отсутствие вырN2 подразумевает замену всех реализаций.

  49. STRZERO (вырN1[, вырN2[, вырN3]])
  50. Функция STRZERO преобразует числовое выражение в символьную строку с заменой левых пробелов "0".

    STRZERO( 1234, 10, 2 ) вернет '0001234.00'

  51. STUFF( вырC1, вырN1, вырN2, вырC2)
  52. Модифицирует любую часть строки символов, не требуя изменения всей строки.

    ВырC1 - текущая обрабатываемая строка.

    ВырN1 - номер символа, начиная с которого надо начать замену.

    ВырN2 - длина подстроки, которая удаляется из исходной строки символов и заменяется на вырC2.

    Если вырN2 равно 0, то второе символьное выражение вставляется в указанное место, и ни один символ из вырC1 не удаляется. Если вырC2 является пустой строкой, из вырC1 будет удалено указанное вырN2 число символов без добавления.

  53. SUBSTR( вырC), вырN1[, вырN2])
  54. Функция SUBSTR возвращает указанное число символов из вырC, которое может быть символьной строкой, текстовым полем или символьным полем базы данных.

    Функция может включать 2 или 3 аргумента. Функция SUBSTR() "вырезает" из вырC заданное в вырN2 число символов, начиная с номера символа, указанного значением аргумента вырN1. Первый символ вырC имеет номер 1. Если число символов вырN2 не указано, то выходная строка начинается с указанной позиции и заканчивается последним символом исходной строки.

    SUBSTR('xyzabcd', 3, 4) вернет 'zabc'.

  55. TRANSFORM(выр, вырC)
  56. Функция TRANSFORM позволяет задавать шаблон формата вывода символов и чисел. Функция возвращает отформатированные данные.

    Выр - переменная, которую нужно форматировать.

    ВырC - определение формата для переменной.

    ВырC для цифровых данных:

    B - Выравнивает числа по левой границе.

    C - Выводит символ CR (кредит) после положительного числа.

    X - Выводит символ DB (дебет) после отрицательного числа.

    Z - Подавляет незначащие нули пробелами.

     

    ВырC для символьных данных:

    R - Вывод в шаблоне литеральных символов, не являющихся частью данных и не запоминающихся.

    ! - Допускает ввод любого символа, при этом маленькие буквы будут преобразовываться в большие.

    A - Только буквы.

    9 - Допускает ввод только цифр в символьных данных, цифр и знаков в числовых данных.

    # - Допускает ввод только цифр, пробелов и знаков.

    N - Допускает ввод только букв и цифр.

    X - Допускает ввод любого символа.

    L - Допускает ввод только логических значений.

    Y - Допускает ввод только логических Y, y, N, n, преобразовывая y и n в Y и N,

    ! - Преобразовывает маленькие буквы в большие.

    , - Разделяет цифры слева от десятичной точки.

    * - Высвечивает символы звездочки (*) перед числовыми значениями.

    $ - Высвечивает денежный знак

     

    'transform(phone, "@R (###) ###-####")' вернет '(909) 699-6776'.

    'transform(123456.78, "$9,999,999.99")') вернет ' $123,456.78'.

  57. UPPER(вырC)
  58. Функция UPPER конвертирует строчные буквы в прописные в заданном символьном выражении.

  59. WORD(вырC1, ВырN[, вырC2]) или Слово
  60. Функция WORD позволяет выделить из строки, заданой вырC1 слово номер ВырN. При этом необязательный параметр вырC2 задает символ разделитель ( по умолчанию это запятая ",").

    Например Word('111;222;333;444;555;',3,';') вернет строку "333".

Наверх Задать вопрос