- •Начало работы в среде разработчика FoxPro
- •Константы и переменные
- •Примеры
- •Примеры
- •Примеры
- •Комментарии
- •Процедуры и функции
- •Примеры:
- •Индексы массива
- •Примеры
- •Примеры
- •Примеры
- •2. Считывание информации из файла.
- •3. Перемещение по файлу
- •Примеры
- •Примеры
- •Примеры
- •Примеры
- •Примеры
- •Примеры
- •Задание
- •Примеры
- •Задание
- •Графические функции
- •Шрифтовые свойства
- •Метод line
- •Метод box
- •Метод Circle
- •Функции даты и времени
- •Use [файл | ?] [in рабочаяОбласть] [again] [alias Псевдоним] [exclusive | shared] [noupdate]
- •Добавление и изменение значений полей
- •Относительное перемещение:
- •Контрольные работы
Примеры
1. Сложим 5 и 12.123
set point to "."
? (5+12.123)
Результат: 17.123
2. Возведем 2 в степень 8
set point to "!"
set decimals to 6
? 2**8
Результат: 256!000000
3. Возведем 2 в степень 8
set point to "."
set decimals to 2
? 2^8
Результат: 256.00
4. Получим остаток от деления на 2 от числа 127
? 127%2
Результат: 1
5. Извлечем квадратный корень из 145
set decimals to 5
? 145^0.5
Результат: 12.04159
Тип данных дата
Константа типа дата по умолчанию для VFP6.0 задается в виде {^yyyy-mm-dd [hh[:mm[:ss]] [a|p]]} для VFP7.0 в виде {^yyyy-mm-dd [hh[:mm[:ss]] [a|p]]}. Здесь yyyy – обозначает четыре цифры года, mm – две цифры номера месяца, dd – две цифры числа месяца, hh – часы, mm – минуты, ss – секунды, a или p - обозначают до или после полуночи при отображении времени в 12-ти часовом формате. В данном пособии мы будем использовать обозначения соответствующие VFP6.0. При выводе на экран величины типа дата отображаются по разному, в соответствии с заданным форматом отображения даты, например для американского формата – {ММ/ДД/ГГ} – где ММ – месяц, ДД – день, ГГ – год. Так {09/15/01} соответствует 15 сентября 2001 года. Формат вывода дат можно изменить с помощью команд SET CENTURY и SET DATE.
Формат команды SET DATE:
SET DATE [TO] AMERICAN | ANSI | BRITISH | FRENCH | GERMAN | ITALIAN | JAPAN | USA | MDY | DMY | YMD
Команда определяет следующие форматы даты:
Тип даты |
Формат |
Тип даты |
Формат |
AMERICAN |
ММ/ДД/ГГ |
JAPAN |
ГГ/ММ/ДД |
ANSI |
ГГ.ММ.ДД |
USA |
ММ-ДД-ГГ |
BRITISH/FRENCH |
ДД/ММ/ГГ |
MDY |
ММ/ДД/ГГ |
GERMAN |
ДД.ММ.ГГ |
DMY |
ДД/ММ/ГГ |
ITALIAN |
ДД-ММ-ГГ |
YMD |
ГГ/ММ/ДД |
Команда SET CENTURY ON | OFF позволяет определить формат вывода года в датах. Если значение параметра SET CENTURY равно ON, год при выводе даты отображается четырьмя цифрами и дата выводится длиной 10 символов. Если значение параметра SET CENTURY равно OFF, год отображается двумя цифрами, а дата, соответственно, выводится длиной 8 символов. При этом подразумевается год 20-го века. По умолчанию принимается установка SET CENTURY OFF.
Даты нельзя складывать, но можно вычитать при момощи оператора "-". К датам можно прибавлять и из дат можно вычитать числа, которые интерпретируются как количество дней.
Даты можно сравнивать при помощи операторов сравнения:
"=" – равно;
"!=", "#", "<>" – не равно;
">", ">=" – больше, больше либо равно;
"<", "<=" – меньше, меньше либо равно.
Примеры
1.
Set century off
Set date british
? {^2001-09-10}-{^2001-09-01}
Результат: 9
2.
Set date british
Set century on
? {^2001-09-10}-5
Результат: {5/09/2001}
3.
Set date american
Set century on
? {^2001-09-10}-5
Результат: {09/05/2001}
4.
Set date british
Set century on
? {^2001-09-10} = ({^2001-08-10}+30)
Результат: .F.
Т.е. дата 10 сентября 2001 года не равна дате на 30 дней больше чем 10 августа 2001 года. Это действительно так, потому, что в августе 31 день.
5.
Set date british
Set century on
? {^2001-09-10} > ({^2001-08-10}+30)
Результат: .T.
В данном примере сравнивается дата 10 сентября 2001 года и дата, полученная из 10 августа 2001 года плюс 30 дней. Естественно, что значение {^2001-09-10} больше, чем ({^2001-08-10}+30), поскольку последняя дата соответствует 9 сентября 2001 года.
Логический тип данных
Константы логического типа принимают два значения: истина – .T. или ложь – .T. Для величин логического типа определены следующие операции:
AND – логическое и;
OR – логическое или;
!, NOT – отрицание, логическое не;
= – эквивалентность, равенство;
#, !=, <> – неравенство;
< – больше;
> – меньше.
В нижеприведенной таблице указаны результаты основных операций с логическими величинами.
Операция |
Результат |
Операция |
Результат |
.T. AND .T. |
.T. |
.T. = .T. |
.T. |
.F. AND .T. |
.F. |
.T. = .F. |
.F. |
.T. AND .F. |
.F. |
.F. = .F. |
.T. |
.F. AND .F. |
.F. |
.T. <> .T. |
.F. |
.T. OR .T. |
.T. |
.F. <> .F. |
.F. |
.F. OR .T. |
.T. |
.T. > .F. |
.T. |
.T. OR .F. |
.T. |
.F. > .T. |
.F. |
.F. OR .F. |
.F. |
.T. < .F. |
.F. |
NOT .T. |
.F. |
.F. < .T. |
.T. |
NOT .F. |
.T. |
|
|
Непосредственно логические величины и выражения из логических величин встречаются не очень часто. Логические величины, как правило, встречаются как результат выражений сравнения величин других базовых типов.
Переменные
Переменными называют величины, которые могут принимать значения из области определения. С точки зрения языков программирования переменные представляют собой ссылки на области памяти предназначенные для хранения данных. Вы можете изменять содержимое переменной, но ее имя и занимаемая область памяти резервируются до тех пор, пока вы не закончите данный сеанс FoxPro или не освободите эту переменную. Переменные и их значения теряются при выходе из FoxPro, если вы предварительно не сохраните их на диске. Переменная может содержать данные любого типа, а значение переменной можно изменить в любое время. В языке FoxPro не требуется предваримтельное декларирование (описание) переменных, тип переменной определяется присваиванием – "=" и может быть переопределен в ходе выполения программы. Переменные существуют, пока выполняется приложение или продолжается сеанс Visual FoxPro, в котором они были созданы. Чтобы задать область видимости переменной, используются ключевые слова LOCAL, PRIVATE и PUBLIC.
Имена переменных должны удовлетворять соответствующим правилам. Например, в процедурном языке FoxPro имена переменных должны состоять из букв, символа подчеркивания – "_" и цифр, причем начинаться имя переменной должно с буквы или символа подчеркивания.
Определение типа данных, функция TYPE()
Функция TYPE() предназначена для определения типа переменных, констант и выражений. Синтаксис функции следующий: TYPE(cExpression)
Параметр cExpression задает имя memo-файла или символьное выражение, содержимое которого анализирует функция TYPE(). В результате возвращается символ соответствующий типу данных выражения – cExpression.
Тип данных |
Возвращаемый символ |
Character |
C |
Numeric (включая float, double и integer) |
N |
Currency |
Y |
Date |
D |
DateTime |
T |
Logical |
L |
Memo |
M |
Object |
O |
General |
G |
Неопределенный тип выражения |
U |
Команды вывода на экран ? и ??.
Создайте директорию на своем диске U:\FOX_SMPL\.
В командном окне выполните команду: modify command. В открывшемся окне встроенного текстового редактора запишите заново эти строки или скопируйте их из командного окна (Ctrl+C - копировать выделенный фрагмент в буфер, Ctrl+V вставить фрагмент в окно редактора). Сохраните полученный файл на диске с именем prog1.prg. ( File> Save as:) Файл prog1.prg - Ваша первая программа.
Выполните ее командой do u:\fox_smpl\prog1.prg. (Выполните эту программу из главного меню командами Program->Do -> имя вашей программы).
Выполните последовательно нижеприведенные группы команд сначала в командном окне, а затем преобразуйте их в отдельные файлы с именами prog2.prg, prog3.prg и так далее.