Функции для работы с текстовыми значениями
В CLEM можно выполнять следующие операции со строками:
- Сравнивать строки
- Создавать строки
- Обращаться к символам
В CLEM строка - это любой набор символов между знаками согласования в виде двойных кавычек ("строковые кавычки"
). Символом (CHAR
) может быть любой одиночный алфавитно-цифровой символ. Они объявляются в выражениях CLEM при помощи обратных одинарных кавычек в форме `
<символ>`
,
например, `z`
, `A`
или `2`
. Не объявленные символы и отрицательные индексы для строки приведут к неопределенному поведению.
Прим.: Сравнения между строками, использующими и не использующими SQL pushback, могут генерировать различные результаты, если существуют заключительные пробелы.
Функция | Результат | Описание |
---|---|---|
allbutfirst(N, STRING)
|
Строка | Возвращает строку, совпадающую со строкой STRING с удаленными N первыми символами. |
allbutlast(N, STRING)
|
Строка | Возвращает строку, совпадающую со строкой STRING с удаленными N последними символами. |
alphabefore(STRING1, STRING2)
|
Логический | Используется для проверки алфавитно-цифрового упорядочивания строк. Возвращает значение true, если STRING1 следует перед STRING2. |
endstring(LENGTH, STRING)
|
Строка | Извлекает последние N символов из заданной строки. Если длина строки меньше или равна заданному значению, она не изменяется. |
hasendstring(STRING, SUBSTRING)
|
Целое | Это та же функция, что и isendstring(SUBSTRING,
STRING).
|
hasmidstring(STRING, SUBSTRING)
|
Целое | Это та же функция, что и ismidstring(SUBSTRING,
STRING) (встроенная подстрока). |
hasstartstring(STRING, SUBSTRING)
|
Целое | Это та же функция, что и isstartstring(SUBSTRING,
STRING) . |
hassubstring(STRING, N, SUBSTRING)
|
Целое | Это та же функция, что и issubstring(SUBSTRING,
N, STRING) , где у N значение по умолчанию 1. |
count_substring(STRING, SUBSTRING)
|
Целое | Возвращает число, сколько раз заданная подстрока встречается в данной строке. Например,
count_substring("foooo.txt",
"oo") возвращает 3. |
hassubstring(STRING, SUBSTRING)
|
Целое | Это та же функция, что и issubstring(SUBSTRING,
1, STRING) , где у N значение по умолчанию 1. |
isalphacode(CHAR)
|
Логический | Возвращает значение true, если CHAR - это символ в заданной строке (часто - имя поля), у которого код символа - это буква. В противном случае эта функция возвращает значение 0. Например, isalphacode(produce_num(1)) . |
isendstring(SUBSTRING, STRING)
|
Целое | Если строка STRING заканчивается подстрокой SUBSTRING, эта функция возвращает целую подстроку SUBSTRING в STRING. В противном случае эта функция возвращает значение 0. |
islowercode(CHAR)
|
Логический | Возвращает значение true, если CHAR - это символ строчной буквы для заданной строки (часто - имя поля). В противном случае эта функция возвращает значение 0. Например, islowercode (``) и islowercode (country_name (2)) - это два допустимых выражения. |
ismidstring(SUBSTRING, STRING)
|
Целое | Если SUBSTRING - это подстрока строки STRING, но она не начинается с первого символа STRING или не заканчивается последним, эта функция возвращает индекс, с которого эта подстрока начинается. В противном случае эта функция возвращает значение 0. |
isnumbercode(CHAR)
|
Логический | Возвращает значение true, если CHAR - это символ в заданной строке (часто - имя поля), у которого код символа - это цифра. В противном случае эта функция возвращает значение 0. Например, isnumbercode(product_id(2)) . |
isstartstring(SUBSTRING, STRING)
|
Целое | Если строка STRING начинается с подстроки SUBSTRING, эта функция возвращает индекс 1. В противном случае эта функция возвращает значение 0. |
issubstring(SUBSTRING, N, STRING)
|
Целое | Ищет в строке STRING, начиная с ее N-ого символа, подстроку, совпадающую с SUBSTRING. Если такая подстрока находится, эта функция возвращает целочисленный индекс, с которого начинается совпадающая подстрока. В противном случае эта функция возвращает значение 0. Если значение N не задано, используется значение функции по умолчанию (1). |
issubstring(SUBSTRING, STRING)
|
Целое | Ищет в строке STRING, начиная с ее N-ого символа, подстроку, совпадающую с SUBSTRING. Если такая подстрока находится, эта функция возвращает целочисленный индекс, с которого начинается совпадающая подстрока. В противном случае эта функция возвращает значение 0. Если значение N не задано, используется значение функции по умолчанию (1). |
issubstring_count(SUBSTRING, N, STRING):
|
Целое | Возвращает индекс N-ого появления подстроки SUBSTRING в заданной строке STRING. Если подстрока SUBSTRING встречается в строке меньше N раз, возвращается 0. |
issubstring_lim(SUBSTRING, N, STARTLIM,
ENDLIM, STRING)
|
Целое | Это та же функция, что и issubstring ,
но совпадения ограничены началом на подстроке STARTLIM или до нее и окончанием на подстроке ENDLIM или до нее. Ограничения STARTLIM или ENDLIM можно отключить, использовав значение false для любого из аргументов, например, issubstring_lim(SUBSTRING, N, false, false, STRING) - это то же самое, что и issubstring . |
isuppercode(CHAR)
|
Логический | Возвращает значение true, если CHAR - это буква верхнего регистра. В противном случае эта функция возвращает значение 0. Например, isuppercode (``) и isuppercode (country_name (2)) - это два допустимых выражения. |
last(CHAR)
|
Строка | Возвращает последний символ CHAR строки STRING (которая должна быть длиной по крайней мере в один символ). |
length(STRING)
|
Целое | Возвращает длину строки STRING, то есть, количество символов в ней. |
locchar(CHAR, N, STRING)
|
Целое | Используется для определения положения символов в символических полях. Эта функция ищет в строке STRING символ CHAR,
начиная поиск с N-ого символа строки STRING. Эта функция возвращает значение, указывающее на положение (начиная с N), где найден символ. Если символ не найден, эта функция возвращает значение 0. Если у функции недопустимое смещение (N) (например, сдвиг, выходящий за пределы длины строки), функция возвращает значение $null$ .
Например, функция locchar(`n`,
2, web_page) ищет в поле с названием web_page символ `n` , начиная со второго символа в значении поля.
Примечание: Не забудьте использовать одинарные обратные кавычки для выделения заданного символа. |
locchar_back(CHAR, N, STRING)
|
Целое | Аналогично функции locchar , за тем исключением, что поиск выполняется в обратном направлении, начиная с N-го символа. Например, функция locchar_back(`n`, 9, web_page) ищет в поле web_page, начиная с девятого символа и двигаясь назад к началу строки. Если у функции недопустимое смещение (например, сдвиг, выходящий за пределы длины строки), функция возвращает значение $null$ . Лучше всего использовать функцию locchar_back вместе с функцией length(<поле>) , чтобы динамически использовать длину текущего значения поля. Например, locchar_back(`n`, (length(web_page)), web_page) . |
lowertoupper(CHAR)
lowertoupper (STRING)
|
CHAR или строка | Входные данные могут быть или строкой, или символом, которые используются в этой функции, чтобы возвратить новый элемент того же типа, в котором все символы нижнего регистра преобразованы в верхний регистр. Например, lowertoupper(`a`) , lowertoupper(“My
string”) и lowertoupper(field_name(2)) - это допустимые выражения. |
matches
|
Логический | Возвращает значение true, если строка соответствует заданному шаблону. Шаблон должен быть строковым литералом; он не может быть именем поля, содержащего шаблон. Знак вопроса (?) можно включить в шаблон для совпадения ровно одного символа; звездочка (*) указывает на совпадение нулевого или любого числа символов. Чтобы использовать для поиска совпадений знак вопроса или звездочку в литерале (вместо применения их в качестве подстановочных знаков), можно использовать символ обратной дробной черты (\) как знак перехода. |
replace(SUBSTRING, NEWSUBSTRING, STRING)
|
Строка | В заданной строке STRING заменяет все экземпляры подстроки SUBSTRING на NEWSUBSTRING. |
replicate(COUNT, STRING)
|
Строка | Возвращает строку, состоящую из скопированной заданное число раз исходной строки. |
stripchar(CHAR,STRING)
|
Строка | Позволяет удалить заданные символы из строки или поля. Например, эту функцию можно использовать для удаления из данных дополнительных символов, таких как обозначения валют, для получения более простого числа или названия. Например, при использовании синтаксиса stripchar(`$`,
'Cost') возвращается новое поле с удаленным из всех значений знаком доллара.
Примечание: Не забудьте использовать одинарные обратные кавычки для выделения заданного символа. |
skipchar(CHAR, N, STRING)
|
Целое | Ищет в строке STRING любой символ, кроме CHAR, начиная с N-го символа. Эта функция возвращает целочисленную подстроку, обозначающую точку, где такое значение найдено, или 0, если все символы после N-ого - это CHAR. Если у функции недопустимое смещение (например, сдвиг, выходящий за пределы длины строки), функция возвращает значение $null$ .
Функция locchar часто используется совместно с функциями skipchar для определения значения N (точки, с которой начинается поиск в строке). Например, skipchar(`s`, (locchar(`s`, 1, "MyString")),
"MyString") . |
skipchar_back(CHAR, N, STRING)
|
Целое | Аналогично функции skipchar , за тем исключением, что поиск выполняется в обратном направлении, начиная с N-го символа. |
startstring(LENGTH, STRING)
|
Строка | Извлекает первые N символов из заданной строки. Если длина строки меньше или равна заданному значению, она не изменяется. |
strmember(CHAR, STRING)
|
Целое | Эквивалентно функции locchar(CHAR, 1, STRING) . Эта функция возвращает целочисленную подстроку, обозначающую точку, в которой впервые встречается CHAR, или 0. Если у функции недопустимое смещение (например, сдвиг, выходящий за пределы длины строки), функция возвращает значение $null$ . |
subscrs(N, STRING)
|
CHAR | Возвращает N-ый символ CHAR из входной строки STRING. В краткой форме эту функцию можно записать как STRING(N) . Например, lowertoupper(“name”(1)) - это допустимое выражение. |
substring(N, LEN, STRING)
|
Строка | Возвращает подстроку SUBSTRING, состоящую из символов LEN строки STRING, начиная с символа с индексом N. |
substring_between(N1, N2, STRING)
|
Строка | Возвращает подстроку строки STRING, которая начинается с индекса N1 и заканчивается индексом N2. |
trim(STRING)
|
Строка | Удаляет начальные и конечные пробельные символы из заданной строки. |
trim_start(STRING)
|
Строка | Удаляет начальные пробельные символы из заданной строки. |
trimend(STRING)
|
Строка | Удаляет конечные пробельные символы из заданной строки. |
unicode_char(NUM)
|
CHAR | Ввод должен содержать десятичные, а не шестнадцатеричные значения. Возвращает символ Unicode со значением NUM. |
unicode_value(CHAR)
|
NUM | Возвращает значение Unicode для CHAR |
uppertolower(CHAR)
uppertolower (STRING)
|
CHAR или строка | Входные данные могут быть или строкой, или символом, которые используются в этой функции, чтобы возвратить новый элемент того же типа, в котором все символы верхнего регистра преобразованы в нижний регистр. Примечание: Не забудьте задать строки с двойными кавычками и символы с одинарными обратными кавычками. Простые имена полей должны быть заданы без кавычек. |