Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Среднее профессиональное образование 9 страница



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 | Нарушение авторских прав







mybiblioteka.su - 2015-2024 год. (0.044 сек.)







<== предыдущая лекция | следующая лекция ==>