Команды перемещения указателя
Выражения даты-времени
Символьные выражения
Логические выражения
Числовые выражения
В числовых выражений используются следующие операции:
+сложение;
- вычитание;
* умножение;
/ деление;
% остаток от деления
L= 13%5
L получит значение 3
** или ^ возведение в степень
L=2**6
L получит значение 26, т.е. 64
В логические выражения могут принимать одно из двух значений:
.t. - истина
.f. - ложь
В логических выражениях могут использоваться операции
AND - логические И
OR - логическое ИЛИ
NOT или ! - логическое отрицание
А так же следующие отношения:
< меньше
> больше
= равно
<>, != , # неравно
<= меньше или равно
>= больше или равно
$, = сравнение подстроки
== сравнение точного совпадения строк символов
Пример:
(k>=3) AND (L=5)
При k =2 , L=4 выражение ложно, т.е. принимает значение .f.
В символьных выражениях можно использовать операции + и –
+ слияние двух строк
Пример:
K=‘Иванов_ _ _’ + ’Александр’
Переменная k получит значение ‘Иванов_ _ _Александр’
- слияние двух строк, при котором хвостовые пробелы из одной строки переносятся в конец строки-результата.
Пример:
K=‘Иванов_ _ _’ - ’Александр’
Переменная k получит значение ‘ИвановАлександр_ _ _’
Сравнение подстроки используется операция $ или =
Берутся все символы из строки, которая стоит слева от знака сравнения и сравниваются с символами строки, которая стоит справа от знака равенства. Если в “правой” строке больше символов, чем в “левой”, “лишние” символы не учитываются и не влияют на результат сравнения.
Для полного сравнения используется операция ==
В этом случае каждая буква строки, стоящей слева от знака == сравнивается с буквой строки стоящей справа.
Пример:
K1=’Иванов’
K2=’Иванов С.М.’
Запрос ? K1=K2 результат .t.
Запрос ? K2=K1 результат .f.
Выражения могут содержать операции + и -
К дате можно прибавить или отнять целое число, целое число будет количеством дней.
Пример:
? {01/01/99} +25 результат {01/26/99}
1 января 1999 г 26 января 1999 г
? {01/01/99} -25 результат {12/07/98}
1 января 1999 г 7 декабря 1998 г
Даты можно вычитать друг из друга, результат будет количеством дней
Пример:
? {05/20/00} - {01/01/00} результат 139
Складывать две даты нельзя!!!
К дате времени применимы те же операции, целые числа в этом случае будут количеством секунд.
? {05/20/00 11:00:00 PM} + 7200 результат {05/20/00 01:00:00 AM}
5 января 2000 г, 11 часов утра 5 января 2000 г, 1 час дня
? {05/20/00 11:00:00 PM} - 7200 результат {05/20/00 09:00:00 PM}
5 января 2000 г, 11 часов утра 5 января 2000 г, 9 часов утра
? {05/20/00 11:00:00 PM} - {05/20/00 10:00:00 PM} результат 3600
В каждый момент времени может производится работа только с одной запись. На ней стоит так называемый указатель.
Указатель можно перемещать при помощи команд:
Go top – указатель устанавливается на первую запись,
Go bottom– указатель устанавливается на последнюю запись,
Skip N – указатель смещается на N записей к концу таблицы. При N<0 указатель смещается к началу таблицы.
Skip без параметров перемещает указатель на одну запись к концу таблицы.
Для проверки положения указателя используются функции:
Eof() - возвращает значение .T., если достигнут конец файла (указатель перешел через последнюю запись), возвращает .F. во всех других случаях.
Bof() - возвращает значение .T., если указатель находится на первой записи, .F. - во всех других случаях.