|
MEMO — задает копирование полей типа Memo.
Если опция FIELDS не задана, то копирование начинается в первое поле записи и далее подряд. Если число элементов массива больше, чем количество полей записи, то последние элементы массива не копируются. Если число элементов массива меньше количества полей записи, то последние поля записи сохраняют свои прежние значения.
7.4.3. Копирование данных из табличного файла в двумерный массив
Команда COPY ТО ARRAY копирует записи табличного файла в заранее созданный двумерный массив. Копируется столько записей, сколько строк в двумерном массиве, начиная с текущей записи. Если количество полей записи больше, чем число элементов массива в одной строке, то лишние поля записи не копируются. Если количество элементов массива в одной строке больше, чем количество полей записи, то последние элементы массива сохраняют прежние значения. Формат команды:
COPY ТО ARRAY <имя масснва>
(FIELDS <снисок имен иолей>]
[SCOPE]
[FOR <выр.Ь1>]
[WHILE <выр.Ь2>]
[NOOPTIMIZEJ
Назначение опций:
FIELDS Ссписок имен полей> — задает имена полей, значения которых будут копироваться в двумерный массив.
SCOPE — задаст запись, начиная с которой производится копирование, либо диапазон записей.
FOR <Bbip.Ll> — выделяет для копирования только те записи, которые удовлетворяют логическому условию СвырХ! >.
WHILE <Bbip.L2> —выделяет для записи указанные поля.
NOOPTIMIZE — запрещает ускоренную технологию обработки (Rushmore).
7.4.4. Добавление записей в табличный файл из двумерного массива
Команда /APPEND FROM ARRAY добавляет в конец табличного файла записи из двумерного массива. Причем каждая строка двумерного массива заносится в табличный файл как новая запись. Если количество элементов в строке двумерного массива больше, чем количество полей в записи, то последние элементы массива не копируются. Если количество элементов в строке двумерного массива меньше, чем количество полей в записи, то последние поля записи сохраняют прежние значения. Формат команды:
APPEND FROM ARRAY Снчя двумерного масснва>
[FOR <выРХ1>]
[FIELDS <списокимен полей>]
Назначение опций:
FOR <вырХ1> — выделяет из массива те строки, которые удовлетворяют логическому условию <вырХ1>.
FIELDS <список имен полей> — задает имена полей, в которые будут заноситься данные из массива.
7.5. КОМАНДЫ ВВОДА-ВЫВОДА
При работе с базами данных постоянно требуется вводить какие- либо данные, задавать критерии поиска и фильтрации, получать из базы данных результаты произведенных действий. Для этих Целей предусмотрены команды ввода-вывода, которые бывают как простыми, так и универсальными.
7.5.1. Простейшие команды вывода
В FoxPro имеются команды для вывода на экран значений переменных и элементов массивов Причем эти команды допускают управление шрифтом и простейшее форматирование. Формат команды вывода:
? I?? [<выр.1>]
[PICTURE <выр. С1>[
[FUNCTION <выр. С2>]
[АТ <вьгр. Nl>]
[FONT <выр. С3> [, <BUp.N2> ]] [STYLE <выр.С4>[
[, <выр.2>]...
Команда вычисляет и выводит на экран <выр.1>. Назначение опций:
? <выр.1> — вычисляет и выводит значение <выр.1> в следующей строке экрана.
?? <выр.1> — вычисляет и выводит на экран <выр.1> в текущей строке экрана.
Если перед этой командой указана команда SET PRINTER ON, то вывод будет производиться на принтер (печать)
PICTURE <выр. С1> — задает шаблон для вывода значения <выр.1> (подробнее см. команду @... SAY... GET... в п. 7.5.3).
FUNCTION <выр. С2> — задает колы управления выводом (подробнее см. команду @... SAY... GET... в п. 7.5.3).
АТ <Bbip.Nl> — используется для создания таблиц. <Bbip.Nl> задает номер колонки на экране, с которой начинается вывод значения <ныр.!>.
FONT <выр. С3> [, <Bbip.N2> ] [STYLE <выр.С4>] — опция задает тип шрифта (<выр.СЗ>), размер шрифта (<Bbip.N2>) и стиль написания шрифта (STYLE <выр.С4>).
В Visual FoxPro предусмотрены следующие стили написания
шрифта:
В — жирный I — курсив N — нормальный
О — кошурный Q — непрозрачный S — с тенью
- — перечеркнутый Т — прозрачный U — подчеркнутый
7.5.2. Команды очистки экрана
Для очистки экрана используются две команды:
а. Очистка всего экрана — CLEAR. Команда очищает либо весь экран, либо все рабочее окно и размещает курсор в левом верхнем углу.
б. Очистка прямоугольной области экрана:
§> <YI,X1> [CLEAR | CLEAR TO <Y2,X2>]
Команда очищает прямоугольную область экрана с координатами левого верхнего угла (<Y1,X1>) и координатами правого нижнего угла (<Y2,X2>). Если координаты правого нижнего угла области не указаны, то принимаются координаты правого нижнего угла экрана.
7.5.3. Универсальная команда ввода-вывода
Эта команда предназначена для форматного ввода-вывода на экран и принтер. Формат команды:
9 <Y1>, <Х1>
[SAY <выр.1>
[PICTURE <выр.С1>]
[ FUNCTION <выр.С2>]
<имя файла> [ BITMAP] | <имя общего поля>
[ SIZE <выр.М>, <Bwp.N2> ]
[CENTER]
[ ISOMETRIC | STRETCH ]
[ FONT <выр.СЗ> [, <Bbip.N3> ] ] [ STYLE <выр.С4> J [VERB <Bbip.N4>]
[COLOR SCHEME <Bbip.N5> | COLOR <список пар цвегов> ] [GET <переме1тая>
[ PICTURE <выр.С5> ]
[FUNCTION <выр.С6>]
[ DEFAULT <выр.2> ]
[ENABLE| DISABLE]
[ MESSAGE <выр.С7>]
[ [ OPEN ] WINDOW <имя окиа> ]
[ RANGE [ <выр.3> ] [ <выр.4> ] ]
[ SIZE <Bbip.N6>, <Bbip.N7> ]
[VALID <выр.Ь1> | <aup.N8> [ERROR <выр.С8>] ]
[WHEN <aup.L2>]
[FONT <вьф.С9>[,<Bbip.N9>]] [STYLE <выр.С10>) [COLOR SCHEME <выр.М0> | COLOR <спис<жnapцвегов>J
Команда размещает курсор на экране или в окне в позиции YI (номер строки от 0 до 35) XI (номер столбца от 0 до 79) и, начиная с этой позиции, на экран выводится сообщение, указанное в опции SAY <выр.1>. Если в команде дополнительно используется опция GET <переменная>,то <переменная> выводится на экран сразу после SAY <выр.1>. Если перед командой @... SAY... GET... указана команда SET DEVICE ТО PRINT, то вывод производится на принтер и тогда количество строк и столбцов определяется размером бумаги. Для переназначения вывода на экран следует использовать команду SET DEVICE ТО SCREEN (команда используется по умолчанию). Значение <переменная> должно быть определено до использования команды @... SAY... GET... В общем случае, назначение опции SAY указать пользователю, где выполнить ввод (вывод) по пункту GET.
<выр.1> и <переменная> форматируются по отдельности с использованием опций, указанных после них.
Для форматирования <выр.1> используются следующие опции:
PICTURE — задаст шаблон для форматирования. При составлении шаблона можно применять символы:
А — используются только символы алфавита (русского или латинского);
L — используются только логические данные;
N — используются только буквы и цифры;
X — используются любые символы;
Y — используются логические данные, приведенные к виду Y — True и N — False;
9 — используются только числовые данные;
# — используются цифры, пробелы и математические
знаки;
! — преобразует строчные (малые) буквы в прописные (большие);
$ — используется для обозначения денежных единиц;
* — используется для обозначения • перед числом;
. — используется для отделения целой части числа от дробной части;
, — используется для разделения тысяч в числовых данных.
Каждый шаблон начинается с символа а затем следуют указанные выше символы.
FUNCTION — задает коды управления выводом, при этом начальный символ @ не указывается. Для составления кодов уп- равления используют символы:
А — разрешены только символы алфавита;
В — сохраняет выравнивание числовых данных;
С — отображает знак кредита CR после поло
жительного числа;
D — использует текущий формат даты;
I — используется для расположения текста по
центру внутри поля;
J — форматирует текст внутри поля по правой
границе;
К — разрешает редактирование целочисленного
поля;
L — отображает ведущие (незначащие) нули пе
ред целой частью числа;
М<список>0 — задает список предварительного выбора для пользователей (элементы списка разделены запятыми);
R — отображает (без сохранения) символы фор
мата;
S<n> — задает ширину поля вывода в символах;
Т — удаляет ведущие и конечные пробелы;
V<Bbip N> — заполняет все отведенное пространство
(<Bbip.N>) текстом, за счет добавления пробелов;
X — отображает знак дебета DB после положи
тельного числа;
Z — в пустых числовых полях отображает про
белы вместо 0;
(— заключает в скобки отрицательные числа;
— преобразует строчные (малые) буквы в прописные (большие);
$ — отображает символ денежной единицы;
пробел — задаст вывод чисел в экспоненциальной
форме.
<имя файла> [ BITMAP] | <ичя общего патя> — используется д ля вставки рисунка (.bmp) или OLE-объекта, сохраненном в общем поле в указанном месте экрана. Следующие четыре опции управляют размещением рисунка на экране.
SIZE <выр.М>, <Bbip.N2> — определяет ширину'(<выр.Ы1>) и высоту (<Bbip.N2>) импортируемого рисунка.
CENTER — располагает рисунок в центре выделенной области.
ISOMETRIC — пропорционально изменяет размеры импортируемого рисунка, с целью заполнения всего выделенного пространства.
STRETCH — заполняет рисунком все выделенное пространство без сохранения пропорций.
VERB <выр.М> — непосредственно вставляет рисунок с указанными параметрами.
FONT <выр.СЗ> [, <Bbjp.N3> ] ] [ STYLE <выр.С4> — залаеттип (<выр.СЗ>), размер (<выр.№>) и стиль (<выр.С4>) шрифта, которым будет выведено значение <выр. 1 >. ■
COLOR SCHEME <Bbip.N5> | COLOR <список пар цветов> — задает цвет, которым будет выведено значение <выр.1>, либо с помощью указания номера цвета (<Bbip.N5>) в палитре цветов (номер цвета выбирается из диапазона от 1 до 24), либо с помощью буквенного обозначения цвета шрифта и цвета фона (<список пар цветов>).
GET <переменная> — указывается имя переменной, значение которой будет выведено после значения <выр.1>. Значение <пе- ременная> должно быть определено до использования команды @ SAY GET любым способом, кроме опции DEFAULT. PICTURE <выр.С5> — задает шаблон для значения СперемеН- ная> аналогично значению <выр.1>.
FUNCTION <выр.С6> — задает коды управления выводом значения <персменная> аналогично значению <выр.1>.
В опциях PICTURE и FUNCTION допускается использование комбинации символов *♦* и пробел для создания командных кнопок-
DEFAULT <выр.2> — устанавливает значение переменной по умолчанию. При первом вызове команды @ SAY GET опция не работает.
ENABLE — разрешает редактирование <псременной>. Эта опция задана по умолчанию.
DISABLE — запрещает редактировать переменной и указывает на это цветом.
MESSAGE <выр.С7> — выводит сообщение (<иыр.С7>) в статус-строку или последнюю строку экрана при установке курсора на поле GET (<неременная>).
[ OPEN ] WINDOW <имя окиа> — разрешает редактирование Memo-поля в окне, которое было заранее определено. Если указана опция OPEN, то окно открывается автоматически. Если опция OPEN не указана, то для открытия окна надо подать команду Ctrl + Home. В том и другом случае дли входа в окно надо либо дважды щелкнуть левой кнопкой мыши внутри окна, либо подать команд)' Ctrl + Home. Для выхода из окна надо либо подать команду' Ctrl + End (для сохранения внесенных изменений), либо нажать клавишу Esc (изменения не сохраняются).
RANGE [<выр.3>] [<выр.4>] — устанааливает диапазон допустимых значений (нижняя граница — <выр.3>, верхняя граница — <выр.4>) для <переменной>. Допускается указание любой одной границы диапазона. При указании только верхней границы диапазона необходимо перед значением верхней границы диапазона поставить запятую. Диапазон допустимых значений устанавливается для символов, чисел и дат. При нарушении границ диапазона на экран выводится соответствующее сообщение с Указанием границ диапазона.
SIZE <Bbtp.N6>, <Bbip.N7> — задает ширину (<ubip.N6>) ивы- соту (<Bbip.N7>) поля GET для ввода значений <перемеиной>.
VALID <выр.И> I <Bbip.N8> [ERROR <выр.С8>] — предназначена для обеспечения достоверности вводимых данных. Если логическое выражение <iibip.Ll> истинно, то вводимые данные Достоверны. В противном случае на экран выводится сообщение °б ошибке <выр.С8>. При составлении логических выражений Допускается использование функций, в том числе и функций Пользователя, специально написашнях для этих целей. Если оп- Пия используется с числовым выражением <Bbip.N8>, то:
• число 0 (ноль) соответствует выявленной ошибке,
• положительное число указывает, на сколько полей GET вперед надо переместить курсор для следующего ввода,
• отрицательное число указывает, на сколько полей GET назад надо переместить курсор для следующего ввода.
Часто в опцию VALID включают команды, которые выполняются при чтении поля.
WHEN <выр.Ь2> — используется для управления редактированием <псременной>. Если логическое условие (<выр.Ь2>) истинно, то редактирование <переменной> разрешено. Если логическое условие (<Bbip.L2>) ложно, то курсор передвигается к следующему полю GET. При написании логического условия допускается использование функций, в том числе и функция пользователя, а также команд, которые выполняются при отображении поля GET.
FONT <выр.С9> [, <Bbip.N9> ] ] [ STYLE <выр.С10> — назначение опции см. выше.
COLOR SCHEME <eup.N10> | COLOR Ссписок пар цветов> -
назначение опции см выше
7.5.4. Редактирование переменных,
заданных командой @... SAY... GET
Команда READ может редактировать переменные всех активных команд®... SAY... GET и разрешает ввод данных в спроектированный экран. Формат команды:
READ
[CYCLE]
[ACTIVATE <buP.L1> ]
[DEACTIVATE <Rup.L2>]
[MODAL]
[WITH Ссписок имен окои>]
[SHOW <Bbip.L3> 1 [VALID CBbip.L4> | CBbip.Nl> ]
[WHEN <Bbip.L5>]
[OBJECT Свыр.\2>]
[TIMEOUT CBbip.N3>]
[SAVE] (NOMOUSE]
(LOCK | NOLOCK]
[COLOR Ссписок пар цвстов> | COLOR SCHEME <Bbip.N4>]
Назначение опций:
CYCLE — при переходе от одной команды @... SAY... GET к другой команде, предотвращает окончание команды READ при обработке последней команды @... SAY... GET и возвращает курсор на первую команду @... SAY... GET. Для выхода из циклического режима надо либо нажать клавишу Esc, либо подать команду Ctrl + W, либо другие прерывающие команды.
ACTIVATE Свыр.Ы> — опция работает с командами @... SAY... GET в разных окнах. При перемещении пользователя от одного окна к другому окну команда READ активизируется для текущего окна только в случае истинности логического выражения Cubip.LlX
DEACTIVATE Свыр.Ь2> — при работе пользователя с несколькими окнами опция разрешает покинуть очередное окно, если логическое выражение CBbip.L2> истинно.
MODAL — разрешает активацию только тех окон, имена которых указаны в Ссписке имен окон> опции WITH.
WITH Ссписок имен окон> — задает имена окон, с которыми работает команда READ.
SHOW CBbip.L3> — разрешает обновить информацию на экране, предварительно измененную командой REM). Эта опция работает совместно с командой SHOW GETS, которая фактически и обновляет содержимое экрана.
VALID Свыр.Ы> | CBbip.Nl> — обеспечивает достоверность вводимых данных с помощью команды READ. Команда READ прекратит всю работу только после ввода достоверных данных, то есть если логическое выражение Свыр.Ь4> истинно.
" HEN Свыр.Е5> — разрешает активацию команды READ только в случае истинности логического выражения CBbip.L5>. OBJECT Cebip.N2> — указывает номер объекта (команды @... SAY... GET), с которого начинается обход. Нумерация объектов начинается с единицы.
TIMEOUT Свыр.Ю> — задает время активности команды BEAD в секундах для ожидания ввода пользователя.
SAVE — сохраняет установки команд @... SAY... GET для их последующей активации следующей командой READ. Обычно установки команд @... SAY... GET очищаются одной из команд CLEAR, CLEAR GETS или CLEAR ALL.
NOMOUSE — запрещает работу мыши. Пользователь может работать только с клавиатурой.
LOCK — ограничивает доступ к данным, указанным в командах @... SAY... GET. После успешного закрытия данных их можно редактировать с помощью команды READ. Опция применяется в локальных сетях.
NOLOCK — устанавливает для всех данных режим «только для чтения». Опция применяется в локальных сетях.
COLOR <список пар пветов> | COLOR SCHEME <Bbip.N4> — устанаативает атрибуты цвета для окна BROWSE.
7.6. ФУНКЦИИ ДЛЯ РАБОТЫ С МАССИВАМИ
(1.4) -* 4 (2.4) -* 8 (3.4) -у 12 (4.4) -* 16 |
Все функции, которые будут рассмотрены ниже, работают как с одномерными, так и с двумерными массивами. Особенность работы в среде FoxPro такова, что нет принципиальной разницы при работе с одномерными и двумерными массивами. К элементу двумерного массива можно обращаться точно так же, как и к элементу одномерного массива, то есть по одному индексу. Если к элементу двумерного массива обращаются по одному индексу, то при этом имеется в виду порядковый номер элемента двумерного массива. Приведем соответствие между фактическим местоположением элемента двумерного массива и его порядковым номером на примере массива размерности (4,4).
(1.1) -* 1 (1,2)-* 2 (1,3)-* 3
(2.1) -* 5 (2,2)-* б (2,3)-* 7
(3.1) -* 9 (3,2) -* 10 (3,3)-* 11
(4.1) -* 13 (4,2)-* 14 (4,3)-* 15
7.6.1. Определение положения элемента массива
а. Номер строки и номер столбца определяет функция ASUBSCR1PT(<имя масснва>, <выр.ГЧ>, < 112>).
Она возвращает из двумерного массива положение элемента <Bbip.N>. Если третий аргумент 1, то функция возпращает номер строки. Если третий аргумент 2, то функция возвращает номер столбца.
б. Функция
AELEMENT(<имя масснва>, <Bup.Nl>, [ <ewp.N2> ])
определяет порядковый номер элемента двумерного массива, по заданным номеру строки <Bbip.Nl> и номеру столбца <Bbip.N2>.
7.6.2. Удаление элемента массива
После удаления элемента массива размерность массива не изменяется.
Если удаляется элемент одномерного массива, то все элементы справа от удалешюго элемента сдвигаются влево, занимая освободившееся место. Последний элемент массива получает тип логический и значение.F. ("ложь").
Если удаляется строка или столбец двумерного массива, то после выполнения операции удаления производится сдвиг оставшихся строк или столбцов. Последняя строка или столбец (все элементы) получают тип логический и значение.F.
Формат функции:
ADEL(<имя масснва>, <выр.1М> [, 2])
Если операция удаления прошла успешно, то функция возвращает 1. Если третий аргумент 2, то в двумерном массиве удаляется столбец. В противном случае удаляется строка.
<Bbip.N> — указывает для одномерного массива номер удаляемого элемента, а для двумерного массива либо номер удаляемой строки, либо номер удаляемого столбца (в зависимости от значения третьего аргумента).
7.6.3. Вставка элементов массива
После выполнения операции вставки элемента массива размерность массива не изменяется.
Формат функции:
A1NS(<нмя массивя>, <Bup.N> [, 2 ]) <Bbip.N> — указывает номер элемента массива, перед которым надо вставить пустой элемент. Пустой элемент имееттип логический и значение.F. Если новый элемент вставляется в одномерный массив, то все элементы справа от вставленного элемента сдвигаются вправо и последний элемент теряется.
В двумерный массив вставляется либо строка, либо столбец целиком. После операции вставки аналогично проводится сдвиг (либо вниз, либо вправо) оставшихся элементов. Если третий аргумент 2, то вставляется столбец, в противном случае — строка.
7.6.4. Копирование элементов из одного массива в другой
Функция ACOPY копирует элементы из одного массива в другой, причем если отсутствует массив-приемник элементов, то он создается автоматически той же размерности, что и массив источник элементов. Если операция копирования прошла успешно, то функция возвращает количество скопированных элементов.
Формат функции:
ACOPY(<массив 1>, <массив 2> (, <w,ip.Nl> [, <eup.N2> [, <w»ip.N3> ] ] ])
Назначение опций:
<массив 1> — имя массива источника элементов.
<масснв 2> — имя массива приемника элементов.
<выр.1Ч1> — указывает номер элемента массива <массив 1>, с которого начинается копирование.
<Bbip.N2> — задает число копируемых элементов.
<выр.МЗ> — указывает номер элемента массива <массив 2>, с которого начинается ввод данных.
Если отсутствуют опции <Bbip.Nl>, <Bbip.N2> и <Bbip.N3>, то производится копирование всего массива <мас- сив 1> в массив <массив 2>. Если отсутствуют опции <nbip.Nl> или <Bbip.N2> (или обе одновременно), то их позиция в формате функции должна быть зафиксирована символом «,* (запятая).
7.6.5. Поиск элемента массива
функция ASCAN осушсстнляет поиск значения <выр.> среди элементов указанного массива, начиная с элемента, имеющего порядковый номер <выр.М1>, до элемента с порядковым номером <Bbip.N2>. При успешном поиске функция возвращает порядковый номер разыскиваемого элемента, в противном случае — 0 (ноль).
Формат функции:
ASCAN(<массив>, <выр.> [, <выр.Х1> [, <вырЛМ2>]])
Назначение опций:
<массив> — задает имя массива, в котором осуществляется поиск элемента.
<выр.> — задает условие поиска.
<выр.1Ч1> — указывает номер элемента, с которого начинается поиск.
<Bbip.N2> — указывает номер элемента, на котором заканчивается поиск.
Если отсутствуют опции <выр.К1> и <Bbip.N2>, то поиск производится по всему <массиву>. Если отсутствует опция <Bbip.NI>, то ее позиция в формате функции фиксируется символом «,* (запятая).
7.6.6. Сортировка элементов массива
Под сортировкой одномерного массива понимают упорядочение элементов массива либо по возрастанию, либо по убыванию. Под сортировкой элементов (строк или столбцов) двумерного массива понимают перестановку строк или столбцов массива в зависимости от значений какого-либо поля по возрастанию или убыванию. Формат функции:
ASORT(<массив> [, <выр.М> [, <Bbip.N2> [, <выр.Ш> ] ] ])
где:
<массив> — задает имя сортируемого массива.
<Bbip.N3> — определяет направление сортировки. Если указан О (ноль), то производится сортировка по возрастанию (установка принята по умолчанию). Если указана 1 (единица), то производится сортировка по убыванию.
Назначение опций при сортировке одномерного массива:
<Bbip.Nl> — указывает номер элемента массива, с которого начинается сортировка.
<выр.Ш> — указывает номер элемента массива, на котором заканчивается сортировка.
Назначение опций при сортировке двумерного массива.
<Bbip.Nl> — задает номер столбца, по значениям которого будет производиться сортировка.
<Bbip.N2> — задает количество строк, которые будут переставляться в результа те сортировки. За начало отсчета принята текущая строка.
Если отсутствуют опции <выр.М1>, <Bbip.N2> и <ubip.N3>, то сортируется весь массив по возрастанию. Если отсутствуют опции <Bbip.Nl> или <выр.Ы2> (или обе одновременно), то их позиция в формате функции фиксируется символом «,* (запятая).
7.6.7. Получение сведений о структуре таблицы
Функция AFIELDS позволяет получить сведения о текущей таблице.
Формат функции:
AFIELDS(<массив>)
<массив> — имя двумерного массив.».
В результате работы функция AFIELDS возвращает количество полей текущей таблицы и создает двумерный массив, с указанным именем, каждая строка которого состоит из 11 столбцов и содержит информацию об одном поле:
• имя поля,
• тип поля (обозначается одной буквой),
• размер поля.
• размер дробной части числа,
• допустимость пустого значения,
• номер кодовой страницы,
• условие достоверности вводимых значений в поле,
• текст сообщения при нарушении достоверности на уровне поля,
• значение поля по умолчанию,
• условие достоверности на уровне записи,
• текст сообщения при нарушении условия достоверности на уровне записи.
Количество строк <массива> определяется количеством полей таблицы.
Имея возвращенный функцией AFIELDS массив можно построить копию таблицы с помощью команды CREATE DBF языка запросов SQL.
7.6.8. Получение информации о файлах
Функция ADIR позволяет получить информацию о файлах текущего каталога.
Формат функции:
ADIR(<масснв> [, <выр.О ])
<массив> — имя двумерного массива.
<выр.О — шаблон на ограничение количества файлов. Шаблон составляется с использованием символов и "?и.
В результате работы функция ADIR создает двумерный массив, с указанным именем, каждая строка состоит из пяти полей, в которых содержится информация об одном файле: имя файла (тип поля С), размер файла (тип поля N), дата создания файла (тип поля D), время создания файла (тип поля С) и атрибут (тип поля С). Количество строк массива <массив> определяется количеством файлов.
Полученный массив <массив> удобно использовать в командах при создании меню.
7.7. КОМАНДЫ ЦИКЛОВ
Также как и в языках программирования, при разработке приложений баз данных предусмотрены команды циклов. Назначение команд, а иногда и формат команд, аналогичное.
7.7.1. Цикл по условию
Формат команды:
DO WHILE <выр. L>
[LOOP1 [EXIT]
ENDDO
Цикл выполняется многократно, до тех пор пока истинно логическое условие <вьф. L>. Для принудительного выхода их цикла, до нарушс!шя логического условия <выр. L>, используют команду EXIT. Команда LOOP используется для прекращения вычислений, предусмотренных текущей итерацией, и принудительного перехода к следующей итерации внутри цикла.
7.7.2. Фиксированный цикл
Формат команды:
FOR <нер.> = <выр. Nl> ТО <выр. N2> [ STEP <выр. N3> ]
[ЕХГГ]
[LOOP]
ENDFOR | NEXT
Цикл выполняет фиксированное количество итераций (шагов).
<пер> называется переменной цикла. В переменной цикла фиксируется количество выполненных итераций, то есть после выполнения очередной итерации значение переменной цикла увеличивается на значение шага цикла <выр. N3>.
<выр. NI> задает начальное (стартовое) значение переменно! цикла.
<выр. N2> задаст конечное значение цикла.
<выр. N3> задает шаг цикла.
<выр. Nl>, <выр. N2> и <выр. N3> имеют целочисленный тип.
По умолчанию шаг цикла принят равным 1. Если <выр. N2> больше <пср.>, то цикл будет выполняться до тех пор, пока
<пер.> небудетбольше <выр. N2>. Это событие обязательно наступит, так как после выполнения каждой итерации переменная цикла <пер.> будет увеличиваться на 1 В некоторых случаях требуется, чтобы переменная цикла после выполнения каждой итерации увеличивалась быстрее, тогда в <выр. N3> указывают целое число, отличное от 1, которое и будет прибавляться к <пер.> после выполнения очередной итерации. Мы рассмотрели цикл на увеличение (сложение), то есть переменная цикла с каждой новой итерацией увеличивала свое значение на величину шага цикла <выр. N3> и цикл прекращался, когда переменная цикла <пер.> становилась больше <выр. N2>.
Допускается задание цикла на уменьшение (вычитание). В этом случае начальное значение <выр. Nl> переменной цикла <пер.> должно быть больше конечного значения <выр. N2>, а шаг цикла <выр. N3> должен бьггь целым и отрицательным. В этом случае после каждой выполненной итерации из переменной цикла <пер.> будет вычитаться значение шага цикла <выр N3> и цикл закончит свою работу после того, как переменная цикла <пер.> станет меньше конечного значения цикла <выр. N2>.
Дата добавления: 2015-09-29; просмотров: 21 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |