Операции и функции
Операции и функции, которые можно использовать для создания условий при описании внешнего вида списков.
Для написания алгоритмов список операторов и функций значительно шире.
Операции
Цифровые операции:
+Сложение
-Вычитание
*Умножение
/Деление
^Степень числа (или **)
Операции сравнения:
= равно
== тождественно равно
<> не равно
# не равно
!= не равно
< Меньше чем
> Больше чем
<= Меньше или равно
>= Больше или равно
$ Включает
Логические операции
.AND. Логическое "И"
.OR. Логическое "И"
.NOT. Логическое "Нет"
Поддерживаются следующие xBase функции
- ALIAS()
- ALLTRIM([<вырC>])
- AT(<вырC1>,<вырC2>)
- CHR(<вырN>)
- CTOD(<вырC>)
- DATE()
- DAY(<вырD>)
- DELETED()
- DTOC(<вырD>[,<1>])
- DTOS(<вырD>)
- EMPTY(<выр>)
- IIF(<вырL>,<выр1>,<выр2>)
- LEFT(<вырC>,<вырN>)
- LEN(<вырC>)
- LOWER(<вырC>)
- MONTH(<вырD>)
- ORDER()
- ORDKEY()
- PADC(<выр>,<вырN>[,<вырС>]) или PADL(<выр>,<вырN>[,<вырС>]) или PADR(<выр>,<вырN>[,<вырС>])
- RAT(<вырС1>,<вырС2>)
- RECCOUNT()
- RECNO()
- RIGHT(<вырC>,<вырN>)
- SELECT()
- SOUNDEX(<ВырС>)
- SPACE(<вырN>)
- STOD( String )
- STR(<вырN1>[,<вырN2>[,<вырN3>]])
- STRZERO (<вырN1>[,<вырN2>[,<вырN3>]])
- SUBSTR(<вырC>),<вырN1>[,<вырN2>])
- TIME()
- TRIM(<вырC>)
- UPPER(<вырC>)
- VAL(<вырC>)
- YEAR(<вырD>)
Функция ALIAS возвращает имя (псевдоним) текущей рабочей области. Если в заданной рабочей области нет открытого файла, функция возвращает пустую символьную строку.
Функция ALLTRIM возвращает заданное символьное выражение, у которого отсечены как ведущие, так и завершающие пробелы.
Эта функция полезна для полной гарантии того, что введенные пользователем данные не имеют нежелательных пробелов в начале и в конце, до использования этих данных в последующих командах.
ALLTRIM(" Здравствуйте ") вернет 'Здравствуйте'.
Выполняет поиск позиции, с которой <вырC1> начинается в <вырC2> и возвращает номер позиции.
Если <вырC1> не встречается в <вырC2>, функция возвращает нулевое значение.
Функция AT() имеет в качестве аргументов две символьные строки или два символьных выражения.
AT("gh", "defghij") вернет 4.
Оценивает заданное <числовое выражение> и возвращает символ, у которого код ASCII соответствует этому числу (результату выражения)
CHR(83) returns 'S'
Преобразовывает дату из символьного формата в формат даты.
Функция возвращает значение даты, соответствующее заданному символьному <выражению>.
Если для ввода дат век не определен (например "25.12.98"), подразумевается год 20-го века.
Возвращает текущее значение системной даты.
Возвращает порядковый номер дня месяца в заданном выражении типа даты.
Выражением типа даты может быть имя поля файла базы данных и функция определения системной даты.
Возвращает логическое значение "истина" (.T.), если текущая запись помечена для удаления и значение "ложь" (.F.) в противном случае.
Преобразует заданное выражение в символьную строку.
Выражением типа даты может быть имя поля файла базы данных, функция системной даты.
В функции DTOC() можно задать необязательный аргумент, обеспечивающий возврат значения в формате, пригодном для построения индекса.
Это может быть особенно полезно в комбинации с функцией TIME() для упорядочения файла базы данных в хронологическом порядке.
Преобразует заданное выражение типа даты в символьную строку , состоящую из восьми цифр в формате ГГГГММДД.
Функция полезна для индексации баз данных по полям даты. Она эквивалентна функции DTOC(), используемой с необязательным аргументом 1.
Выражением типа даты может быть имя поля файла базы данных, функция системной даты. Например, 21 декабря, 2007 года вернет '20071221'.
Возвращает логическое значение истина .T., если заданное выражение является "пустым".
Функция будет возвращать .T., если следующие типы данных соответственно имеют значения:
Символьный - Пустое значение, пробелы, символы табуляции, символы возврата каретки и перевода строки, а также их комбинации
Числовой - 0
Дата - Пустое значение т.е. CTOD("")
Логический - Ложь .T.
Текстовый - Пустой (нет содержания)
Если выражение не "пустое", возвращается .F.
Функция IIF() возвращает значение <выр1> или <выр2> в зависимости от значения <вырL>.
Возвращаемое значение - числовое, символьное, логическое или дата.
Если значение <вырL> - "истина" (.T.), функция возвращает значение <выр1>. Если значение <вырL> - "ложь" (.F.) - функция возвращает значение <выр2>.
Функция IIF() может использоваться взамен структуры IF...ENDIF для создания условных выражений.
Возвращает указанное число символов, начиная с самого левого символа в <вырC>. Возвращаемое значение - символьное
Символьное выражение <вырС> может быть символьной строкой, именем текстового поля или именем символьного поля.
Числовое выражение определяет количество символов, которое нужно выделить из символьного выражения.
Функция LEFT() позволяет выделить первую часть символьной строки. Это то же самое, что делает функция SUBSTR с позиции 1 и количеством символов, указанном в <вырN>. Если числовое выражение равно 0 или отрицательно, то функция возвращает нулевую строку. Если цифровое значение больше, чем длина символьного выражения, то функция возвращает всю строку.
LEFT("xyzabc", 3) вернет 'xyz'.
Возвращает длину символьного выражения <вырС> Возвращаемое значение - числовое <вырС> может быть символьной строкой, текстовым или символьным полем. Если выражение содержит пустую строку, функция возвращает 0.
Преобразует все прописные буквы <вырC> в строчные. Возвращаемое значение - символьное
Возвращает номер месяца (от 1 до 12) из выражения типа даты.
Возвращаемое значение - числовое
Январь имеет номер 1 и декабрь - номер 12.
Выражением типа даты может быть временная переменная, поле файла базы данных или функция определения системной даты.
Возвращает номер текущего индекса.
Возвращает имя главного индекса или главного тэга. Возврат - символьное значение
Возвращают в виде символьной строки заданное первым аргументом выражение, дополненное третьим аргументом до длины, заданной вторым аргументом.
Возвращаемое значение - символьное
Если длина выражения больше <вырN>, выражение усекается справа до заданной величины. Если задан третий аргумент <вырС>, то его повторения используются для дополнения исходного выражения до требуемой длины , иначе используется символ пробела (код 32).
PADL() вставляет символы-заполнители слева,
PADR() - справа, а PADC() с обеих сторон.
В качестве первого аргумента можно задавать символьные, числовые и выражения типа дата.
(реверсивное AT) просматривает <ВырС2>, начиная справа и двигаясь налево, пытаясь при этом обнаружить подстроку, заданной в <вырС1>.
Возвращаемое значение - числовое
<вырС2> может быть текстовым полем.
Функция похожа на AT(), за тем исключением, что последняя ведет поиск слева направо.
RAT( "ab", "abzaba" ) вернет 4.
Возвращает число записей активного файла базы данных. Возвращаемое значение - числовое
Возвращает номер текущей записи активного файла базы данных. Возвращаемое значение - числовое
Возвращает указанное в <вырN> число символов, начиная с самого правого символа в <вырC> или символьной временной переменной.
Если <вырN> равно 0 или отрицательно, функция возвращает пустую строку.
Если <вырN> больше чем длина <вырC>, функция RIGHT() возвращает всю строку.
RIGHT("xyzabc", 3) вернет 'abc'.
Возвращает номер текущей активной рабочей области
Возвращает фонетическое представление символьного выражения <ВырС>.
Сравнивая результаты функции для двух символьных строк, можно определить, являются ли два слова фонетически подобными (имеющими сходное звучание).Это может быть полезным при поиске почти одинаковых символьных данных.
Результатом функции является четырехсимвольная строка. Функция нечувствительна к регистру представления символов и не учитывает гласные.
Возвращает строку символов, состоящую из заданного <вырN> числа пробелов.
Функция, обратная DTOS(). STOD() переводит строку (CCYYMMDD) в выражение даты.
Преобразует числовое выражение в символьную строку. Может иметь 1, 2 или 3 аргумента.
Функция конвертирует <вырN1> в строку заданной в <вырN2> длины. Если указан аргумент <вырN3>, в символьную строку включается заданное этим аргументом число десятичных знаков. Длина строки <вырN2> в этом случае должна учитывать десятичную точку и соответствующее число десятичных знаков.
Если в <вырN2> указать длину, которая больше, чем количество цифр слева от десятичной точки, функция заполняет старшие позиции пробелами. Если же указанная длина меньше этого числа цифр, функция возвращает строку звездочек (*), сигнализируя этим переполнение.
Если в <вырN3> указать меньше десятичных позиций, чем имеется в числе, лишние цифры усекаются. <вырN2> должна учитывать <вырN3>.
Преобразует числовое выражение в символьную строку с заменой левых пробелов "0".
STRZERO( 1234, 10, 2 ) вернет '0001234.00'
Возвращает указанное число символов из <вырC>, которое может быть символьной строкой, текстовым полем или символьным полем базы данных.
Функция может включать 2 или 3 аргумента. Функция SUBSTR() "вырезает" из <вырC> заданное в <вырN2> число символов, начиная с номера символа, указанного значением аргумента <вырN1>. Первый символ <вырC> имеет номер 1. Если число символов <вырN2> не указано, то выходная строка начинается с указанной позиции и заканчивается последним символом исходной строки.
SUBSTR('xyzabcd', 3, 4) вернет 'zabc'.
Возвращает системное время в виде символьной строки формата ЧЧ:ММ:СС.
Обрезает хвостовые пробелы из заданной строки символов. Возвращаемое значение - символьное
Если <вырC> целиком состоит из пробелов, функция возвращает пустую строку.
Конвертирует строчные буквы в прописные в заданном символьном выражении.
Преобразует <вырC> в числовое выражение.
Преобразование начинается с самого левого символа и продолжается до тех пор, пока не встретится нецифровой символ или не закончится строка символов. Ведущие пробелы игнорируются. Если заданное выражение не изображает число, возвращается 0.
VAL("123ABC") вернет значение of 123.
Возвращает числовое значение года, взятое из <вырD>.
В качестве <вырD> можно задать функцию определения системной даты, временную переменную или имя поля файла базы данных.