Следующие команды создают временные переменные и присваивают им значения.
А3 =.Т.
F =.F.
SAVE TO PRIMER.MEM && все переменные сохранить.
SAVE TO PRIMER1 ALL LIKE A* && сохранить все на А (А1, А2, А3).
SAVE TO PRIMER2 ALL EXCEPT F && сохранить все, кроме F.
SAVE TO PRIMER3 ALL LIKE?1 && сохранить А1 и В1.
Если файл в котором нужно сохранить переменные уже существует, то выводится стандартное сообщение. Такое предупреждение в программе можно подавить командой:
Если нужно проработать с ранее сохранёнными переменными, то их нужно загрузить из файла в оперативную память командой:
- команда загружает все переменные из файла <файл>.
Если ADDITIVE указана, то переменные из файла добавляются к переменным, находящимся в памяти, иначе все имеющиеся до этого переменные из памяти удаляются.
Расширение не обязательно.
Формат записи функции
| Действие
| Пример
|
Арифметические
|
INT (<выр. N>)
| Ближайшее целое меньшее или равное <выр. N>.
| ?INT (-18.7)
&& -18
|
MAX (<выр.>, < выр. 1>[, < выр. 2> …])
| Возвращает максимальное значение из списка аргументов, которые должны быть одного типа.
| ?MAX (3,1,-7)
&& 3
|
MIN (<выр.>, < выр. 1> [, < выр. 2> …])
| Возвращает минимальное значение из списка аргументов, которые должны быть одного типа.
| ?MIN (3,1,-7)
&& -8
|
ROUND (<выр. N1>, <выр. N2>)
| Округляет <выр. N1> до заданного в <выр. N2> количества знаков после запятой.
| ?ROUND (- 34.268,1)
&& 34.2
|
RAND ([<выр. N>])
| Возвращает число в диапазоне от нуля до единицы. <выр. N> позволяет определить начальное значение аргумента функции. Если число отрицательное, то значение функции определяется с помощью таймера компьютера.
| |
EXP (<выр. N>)
| Экспонента <выр. N> основание натурального логарифма е в степени <выр. N>.
| |
LOG (<выр. N>)
| Натуральный логарифм <выр. N>, аргумент должен быть больше нуля.
| |
LOG 10 (<выр. N>)
| Десятичный логарифм <выр. N>, аргумент должен быть положительным.
| |
SQRT (<выр. N>)
| Квадратный корень <выр. N>. Аргумент должен быть положительным.
| |
Системные установки
|
SET FIXED ON/OFF
| Если установлено, то число десятичных разрядов, выдаваемых после запятой, определяется разрядностью операндов. Если OFF командой следующей ниже.
| |
SET DECIMALS TO <выр. N>
| Устанавливает количество отображаемых десятичных разрядов равных <выр. N>, и при этом производить округление. По умолчанию <выр. N> = 2. эти команды не влияют на фактические значения.
| |
Строковые
|
AT/ATC (<выр. C1>, <выр. C2> [, <выр. N>])
| Поиск слева направо в строке<выр. С2> номера позиции, с которой начинается подстрока <выр. С1>. Если подстрока не найдена, выдаётся ноль. параметр <выр. N> указывает, какой экземпляр <выр. С1> разыскивается в <выр. С2>. По умолчанию <выр.N>=1.
| ?AT (‘база’,’база данных’)
&& 1
?AT (‘а’,’база данных’)
&& 2
|
LEN (<выр. C>)
| Число символов в <выр. С>. Длина нулевой строки (‘’) ноль.
| ?LEN (‘база’)
&& 4
|
LEFT (<выр. C>, <выр. N>)
| Выделение из строки <выр. С> указанного количества символов слева. Если <выр. N> длиннее строки, то возвращается вся строка.
| ?LEFT (4,’база данных’)
&& база
|
RIGH (<выр. C>, <выр. N>)
| Выделение из строки <выр. С> указанного количества символов справа. Если <выр. N> длиннее строки, то возвращается вся строка.
| ?RIGHT (‘база данных’,6)
&& данных
|
SUBSTR (<выр. C>, <начальная позиция>, [<число символов>])
| Выделение из <выр. C> подстроки начиная с <начальная позиция> длиной в <число символов>. Если последний параметр отсутствует, выделяемая подстрока заканчивается концом строки <выр. C>.
| ?SUBSTR (‘база исходных данных,6,8’)
&& исходных
|
LTRIM (<выр. С>)
| Удаление ведущих пробелов в <выр. C>.
| ?LTRIM (‘ база ’)
&& ‘база ’
|
TRIM (<выр. С>)
| Удаление завершающих пробелов в <выр. C>.
| ?TRIM (‘ база ’)
&& ‘ база’
|
REPLICATE (<выр. С>, <выр. N>)
| <выр. C> повторяется <выр. N> раз.
| ?REPLCATE (‘+–’,5)
&& +–+–+–+–+–
|
SPACE (<выр. N>)
| Формирование строки пробелов длиной <выр. N>
| |
STUFF (<выр. С>, <начальная позиция>, <число символов>, <выр. С2>)
| Изменение любой части <выр. С1> на <выр. С2> с места, указанного <начальная позиция> длиной в заданное <число символов>. Если <число символов > равно нулю, то <выр. С2> вставляется в <выр. С1>, не изменяя не одного символа в исходной строке. Если <выр. С2> является пустой строкой длиной ноль, то есть <выр. С2> = ‘’, из исходной удаляется указанное <число символов> со сжатием <выр. С1>.
| X = ‘база исходных данных’
?STUFF (X,6,9,’конечных’)
&& база конечных данных
?STUFF (X,6,9,’’)
&& база данных
|
Функции работы с датами
|
CDOW (<выр. D>)
| Возвращает имя дня недели SET DATE GERMANпо-английски.
| ?CDOW ({05.10.91})
&& Saturday
|
CMONTH (<выр. D>)
| Предъявляет название месяца по-английски.
| ?CMONTH ({05.10.91})
&& October
|
CTOD (<выр. C>)
| Преобразует дату из символьной формы в формат даты.
| ?CTOD (’05.10.91’)
&& 05.10.91
|
{< выр. C>}
| Функция преобразования строковой константы (без кавычек) в дату. Аналогично CTOD (), но более удобно, однако в качестве допускаются переменные и функции.
| {05.10.91}
&& 05.10.91
|
DATE ()
| Предъявляет системную дату. Формат предъявления зависит от SET CENTURY и SET DATE.
| |
DAY (<выр. D>)
| Число дня по выражению типа дата <выр. D>.
| ?DAY ({05.10.91})
&& 05 October 91
|
DMY (<выр. D>)
| Возвращает по-английски в виде строки выражение даты. Если SET CENTURY OFF – формат ДД месяц ГГ. SET CENTURY ON – формат ДД месяц ГГГГ.
| |
DOW (<выр. D>)
| Определяет номер дня недели по <выр. D>. Первый день недели – воскресенье, седьмой – суббота.
| ?DOW ({05.10.91})
&& 7
|
DTOC (<выр. D>
[, 1])
| Преобразует типа дата в символьное выражение. Один означает, что формат ГГГГММДД.
| ?DTOC ({05.10.91})
&& 05.10.91
?DTOC ({05.10.91},1)
&& 19911005
|
DTOS (<выр. D>)
| Аналогично DTOC () с параметром «1».
| |
GOMONTH (<выр. D>, <выр. N>)
| Возвращает дату, которая отстоит от <выр. D> на <выр. N> месяцев. Если <выр. N> положительно, возвращаемая дата будет на <выр. N> месяцев позже, если отрицательно – раньше. Если такой даты не существует, то возвращается дата, соответствующая последнему дню вычисленного месяца.
| ?GOMONTH ({31.10. 91},12)
&& 31.10.92
?GOMONTH ({31.10.91},-6)
&& 31.04.91
|
MONTH (<выр. D>)
| Определяет числовое значение номера месяца по дате <выр. D>.
| ?MONTH ({05.10.91})
&& 10
|
YEAR (<выр. D>)
| Определяет числовое значение года по <выр. D>.
| ?YEAR ({05.10.91})
&& 1991
|
Функции преобразования данных
|
ASC (<выр. C>)
| Выдаёт ASCII – код первого символа из <выр. С>.
| ?ASC (‘B’)
&& 66
|
CHR (<выр. N>)
| Преобразует значение <выр. N> (1<N<255) в соответствующий символ. Обратно ASC.
| ?CHR (66)
&& B
|
CTOD (<выр. C>)
| Преобразует дату из символьной формы в формат даты.
| |
DTOC (<выр. D>)
| Преобразует типа дата в символьное выражение. Один означает, что формат ГГГГММДД.
| |
STR (<выр. N>, [<длина>], [<десятичные знаки>])
| Преобразует <выр. N> в символьную строку, включающую знак «-» (если есть) и десятичную точку, общей длиной <длина> с заданным количеством <десятичных знаков>.
| ?STR (384.248,8,2)
&& 384.25
|
VAL (<выр. С>)
| Преобразует число, представленное в символьной форме <выр. С>, в числовую форму. Число разрядов устанавливается SET DECIMALS TO, по умолчанию = 2, остальное округляется.
| ?VAL (‘-16.576’)
&& -16.580
|
Функции проверки файлов и дисков
|
BOF ([<область>])
| Достигнуто (BOF () =.T.) или нет (.F.), начало файла БД в текущей или в указанной области.
| |
DBF ([<область>])
| Выдаёт прописными буквами полное (с указанием пути) имя открытой БД в текущей или указанной рабочей области.
| |
DISKSPACE ()
| Число свободных байт на текущем диске.
| |
DELETED ([<область> ])
| Выдаёт.T., если текущая запись помечена на удаление,.F. в противном случае. LIST FOR DELETED – покажет записи помеченные на удаление.
| |
EOF ([<область>])
| Достигнут (.Т.) или нет (.F.) конец файла БД.
| |
FILE (<имя файла>)
| Проверка наличия файла на диске любого типа, имя с расширением пишутся в апострофах.
| |
FIELD (<выр. N1> [, <область>])
| Выдача имени поля из активной БД с указанным в <выр. N> номером поля БД по порядку. Если полей меньше, чем <выр. N> выводится ноль.
| |
FOUND ([<область>])
| (.Т.), если команды (LOCATE, CONTINUE или SEEK) завершилось успешно.
| |
FCOUNT ([<область>])
| Число полей в открытой БД.
| |
FILTER ([<область>])
| Возвращает прописными буквами выражение фильтра, действующего в текущей или в заданной области.
| |
LOOKUP (<поле 1>, <выр.>, <поле 2>)
| Ищет первое вхождение <выражение> в <поле 2> активной БД и возвращает значения <поле 1> из той же БД. Если файл индексирован и индекс открыт, то ведётся индексированный поиск, если нет – последовательный. Если поиск не удачный, возвращается пустая строка и EOF()=.T.
| |
LUPDATE ([<область>])
| Дата последнего изменения БД.
| |
ORDER ([<область>])
| Выдают прописными буквами имя главного индексного файла БД.
| |
RECNO ([<область>])
| Возвращает номер текущей записи активной БД.
| |
RECCOUNT ([<область>])
| Общее количество записей в БД.
| |
RECSIZE ([<область>])
| Размер записи файла БД в байтах.
| |
HEADER ([<область>])
| Размер заголовка в байтах. Величина заголовка в байтах равна 32*(N+1)+1, где N - число полей БД.
| |
SEEK (<выр.> [,<область>])
| Выполняет поиск записей с <выр.> в индексном файле и устанавливает на неё указатель текущей.
| |
UPDATE ()
| Вырабатывает (.Т.), если при выполнении команды READ данные в её областях GET каким-либо образом изменились.
| |
SET FULLPATH ON/OFF
| Если OFF, то маршрут не возвращается (только имя диска и файла). По умолчанию – ON.
| |
CURDIR ([<диск>])
| Возвращает прописными текущую директорию на активном или заданном диске. Если такого диска нет возвращается пустая строка.
| |
SYS (5)
| Возвращает имя активного по умолчанию диска.
| |
SYS (2003)
| Возвращает имя текущей директории по умолчанию. Имя диска не выводится.
| |
SYS (2004)
| Возвращает полное имя директории, где находится FoxPro.
| |
FULLPATH (<файл 1> [,<выр.N>/<файл 2>])
| Возвращает полный маршрут DOS для указанного <файла 1 > или маршрут связи с другим <файлом 2 >. Если имя <файла 1> задано пустой строкой, то будет выдан полный путь, к текущей директории включая имя диска.
| |
Функции позиционирования выдачи данных
|
COL ()
| Номер текущей колонки на экране/окне.
| |
ROW ()
| Номер текущей строки на экране/окне.
| |
PCOL ()
| Номер текущей колонки на принтере.
| |
PROW ()
| Номер текущей строки на принтере.
| |
Функции подстановки
|
& <символьная переменная> [<выр. С>]
| Макроподстановка <символьной переменной> или MEMO – поля не посредственно в объект, который она изображает.
| a = ‘BRIG1’
USE & a
|
EVALUATE (<выр. С>)
| Рассматривает <выр. С> как некоторое допустимое для FoxPro выражение и возвращает для него вычисленный результат.
| ?EVALUATE (‘2**3’)
&& 8
|
=<выр.> [, <выр.>] …
| В качестве выражений можно использовать как встроенные, так и пользовательские функции.
| =CAPSLOCK (.T.)
=INKEY (120)
|
Функции конвертирования и распознавания букв
|
ISALPHA (<выр. С>)
| Возвращает.Т., если <выр. С> начинается с буквы.
| |
ISLOWER (<выр. С>)
| Возвращает.Т., если <выр. С> начинается со строчной буквы.
| |
ISUPPER (<выр. С>)
| Возвращает.Т., если <выр. С> начинается с прописной буквы.
| |
LOWER (<выр. С>)
| Преобразовывает все прописные буквы <выр. С> в строчные.
| |
PROPER (<выр. С>)
| Преобразовывает первую букву в прописную, остальные в строчные.
| |
UPPER (<выр. С>)
| Преобразовывает все строчные буквы <выр. С> в прописные.
| |