Следующие команды создают временные переменные и присваивают им значения.
А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 (<выр. С>)
| Преобразовывает все строчные буквы <выр. С> в прописные.
| |