ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 31.03.2021
Просмотров: 6867
Скачиваний: 51
521
Функция
Назначение
RECNO()
BOF() EOF()
RECCOUNT()
FOUND()
LIКЕ(<образец>, <выр.С>)
UPPER (<выр.С>)
INKEY( )
ERROR()
CHR(<выр.N>)
DATE()
ROW() СОL()
Возвращает номер текущей записи открытого файла БД
Возвращают логический признак начала и конца открытого файла БД
Возвращает число записей в открытом файле БД
Возвращает логический признак успешности поиска в БД командой SEEK
Сравнивает строку <образец> с символьным выражением <выр.С>
Преобразует символьную строку в верхний регистр
Возвращает код нажатой клавиши
Возвращает номер ошибки
Возвращает букву по коду
Возвращает текущую дату
Возвращает номер текущей строки и столбца экрана
В языке dBASE IV используются также функции, которые (наряду с командами) позволяют
обрабатывать данные (в том числе, выполнять вычисления), а также определять состояния, напри-
мер, находится ли указатель записей в конце файла: ?EOF(). После имени функции обычно стоят
круглые скобки, в которых могут помещаться аргументы Функции нельзя использовать самостоя-
тельно, а только вместе с какой-либо командой.
Кроме системных функций в dBASE IV можно использовать функции, созданные самим
пользователем.
В языке dBASE используются
переменные,
тип которых автоматически определяется пер-
вым в данной программе присвоением им значения. Возможные типы: символьный, логический,
числовой, дата.
Кроме простых переменных, в программах и процедурах можно использовать одно- или
двумерные
массивы.
Каждый элемент массива представляет собой обычную переменную. Пред-
ставление переменных в виде массива позволяет значительно расширить диапазон применения
переменных, а также, в ряде случаев, облегчить реализацию функций, присущих переменным. Пе-
ред использованием массивов сначала их надо объявить командой
DECLARE
<имя массива 1>
[{<количество строк>,} {<количество колонок>}]
{,<имя массива 2>
[{<количество строк>,} {<количество колонок>}]...]
В синтаксисе этой команды опции указываются фигурными скобками
вместо
обычно при-
нятых квадратных. При записи команды в программе в квадратные скобки заключаются парамет-
ры (размерность) массива - число строк и столбцов. Если указано одно число, то массив одномер-
ный. Формально двумерный массив с одним из параметров, равным единице, фактически является
одномерным: DECLARE [12,1] или DECLARE [1,25].
Примеры.
DECLARE Mas [8,4]
&& Двумерный массив
DECLARE Masi [10]
&& Одномерный массив
STORE {15/10/89} TODatI [4,4].]
Для ввода данных в переменную или элементы массива в программе используется команда
STORE <выражение>
ТО <список переменных>/<список элементов массива> или альтер-
нативная форма
<переменная>/<элемент массива> = <выражение>.
2.3.4. Ввод данных в базу и редактирование
522
После того как создана структура файла БД, можно вводить данные. Существуют две стан-
дартные экранные формы ввода (и вывода) информации в файлы БД: BROWSE и EDIT. Первая
форма вызывается командой
BROWSE
[NOINIT] [NOFOLLOW] [NOAPPEND] [NOMENU]
[NOEDIT] [NODELETE] [NOCLEAR] [COMPRESS]
[FORMAT] [LOCK <Bыp.N>] [WIDTH <выр.N>]
[FREEZE <имя поля>] [WINDOW <имя окна>]
[FIELDS <имя поля 1> [/R] [/<ширина колонки>]
/<вычисл. имя поля 1> = <выражение 1>
[ ,<имя поля 2> [/R] [/<ширина колонки>]
/<вычисл. имя поля 2> = <выражение 2>]...]
В команде имеется ряд опций, позволяющих устанавливать различные режимы ее исполь-
зования. В число этих опций входит группа опций, позволяющих назначить режимы работы с по-
лями, и группа опций по размещению полей на экране. В состав первой группы входят следующие
опции: NOEDIT , позволяющая установить режим только чтения для всех полей, NOAPPEND, не
разрешающая добавлять новые записи, и NODELETE, не разрешающая помечать записи для уда-
ления. Опция FREEZE назначает для обновления только одно указанное поле. Другие поля высве-
чиваются, но остаются недоступными для редактирования. Если для указанного в опции FREEZE
поля командой PROTECT открыто только чтение, то обновление не разрешается. Опция FREEZE
без имени поля отменяет ранее назначенную установку.
Поля высвечиваются в том порядке, который определен структурой файла БД или указан в
команде опцией FIELDS, входящей в состав второй группы. Эта опция позволяет выбрать поле и
определить порядок его расположения в таблице Browse.
Опция WIDTH устанавливает верхний предел ширины колонки для всех полей в таблице
BROWSE. Эта ширина перекрывает ширину поля, назначенную при создании файла БД. Если оп-
ции WIDTH и <ширина колонки> используются одновременно, то принимается наименьшее зна-
чение. Данная опция, как и предыдущая, не применяется для полей типа Memo и логических по-
лей. Значения числовых полей и полей даты не будут высвечиваться, если значение опции WIDTH
меньше ширины этих полей, назначенных при определении структуры файла БД. Опция FORMAT
позволяет разместить поля в таблице BROWSE в очередности, определенной экранной формой,
которая установлена командой SET FORMAT TO.
Альтернативой команды BROWSE является команда EDIT
EDIT [NOINIT] [NOFOLLOW] [NOAPPEND] [NOMENU]
[NOEDIT] [NODELETE] [NOCLEAR] [<номер
записи>]
[FIELDS <спнсок полей>] [<диапазон>]
[FOR <условие>] [WHILE <условие>]
Эта команда выводит на экран по одной записи файла БД, поля которой размещаются по
вертикали.
Если требуется обновить содержимое полей файла БД без привлечения данных из другого
файла, например умножить содержимое числового поля на заданную 'величину, соединить содер-
жимое двух символьных полей и т.д., можно использовать команду
REPLACE
[<границы>] <поле> WITH <выражение>
[, <поле> WITH <выражение...]
[WHILE <условие>] [FOR <условие>] [ADDITIVE]
которая изменяет (замещает) значения заданных полей (включая поля Memo) текущей записи или
группы записей, определенных границами и опциями WHILE, FOR.
После ввода данных в файл БД нередко требуется быстро их просмотреть. Для этого служат
команды
523
LIST/DISPLAY
[<границы>] [[FIELDS] <список выражений>]
[OFF] [<диапазон>] [FOR <условие>]
[WHILE <условие>] [ТО PRINTER/
ТО FILE <имя файла>]
Эти команды выводят все поля файла БД, если их список не определен опцией FIELDS. В
начале каждой записи, если не указана опция OFF, выводится ее номер, опции <диапазон>, FOR и
WHILE определяют диапазон выводимых записей. Команды LIST и DISPLAY идентичны с той
разницей, что первая выводит записи непрерывно, а вторая делает остановку после вывода одной
страницы экрана.
Кроме выводов файлов БД команды LIST и DISPLAY позволяют также высвечивать дан-
ные о файлах в директориях, содержимое буфера HISTORY (хранилище выполненных с клавиату-
ры команд), данные об используемых переменных и массивах, информацию о текущем сеансе ра-
боты с dBASE, структуру указанного файла БД и имена рабочих станций, работающих в среде
ЛВС.
2.3.5. Дополнительные операции
Нередко возникает необходимость
просмотреть структуру файла
и вывести ее на печать.
Для этого служит команда
LIST/DISPLAY STRUCTURE [IN <алиас>] [ТО PRINTER/TO FILE <имя файла>]
которая выводит информацию о файле БД.
Существуют специальные команды перемещения по файлу, добавления новых записей и
пометки записей для их последующего удаления.
Для
перемещения по файлу
используется команда
GO/GOTO BOTTOM/TOP [IN <алиас>]
или
GO/GOTO [RECORD] <номер записи> [IN <алиас>]
или
<номер записи>
Эти команды осуществляют переход на указанную запись в активном файле БД.
В программах часто требуется
перемещать указатель записи
не на конкретную запись, а на
следующую после текущей. Эту операцию выполняет команда
SKIP [<Bыp.N>] [IN <алиас>]
После того как указатель записи перемещен на нужную запись, которая становится теку-
щей, можно выполнить требуемую операцию, например ввести запись до или после текущей. Для
этого используется команда
INSERT [BEFORE] [BLANK]
которая позволяет ввести новую запись (или пустую запись, если указана опция BLANK)
после текущей или перед ней (если задана опция BEFORE). Пометить одну или несколько записей
для их последующего удаления можно командой
524
DELETE [<диапазон>] [FOR <условие>] [WHILE <условие>]
Опции <диапазон>, FOR и WHILE позволяют
помечать записи,
отобранные в соответствии
с заданным диапазоном и условиями.
Для того чтобы
уничтожить пометки
на удаление записей используется команда
RECALL [<диапазон>] [FOR <условие>] [WHILE <условие>]
Физическое удаление помеченных записей активного файла БД выполняет команда PACK.
Команда
APPEND [BLANK]
позволяет
добавлять записи,
введенные с клавиатуры в конец активного файла БД.
В ряде случаев требуется
создать физически упорядоченный файл.
Для этого используется
команда
SORT TO
<имя файла> ON <поле 1 > [/А] [/С] [/D]
[ ,<поле 2> [/А] [/С] [/D]...] [ASCENDING]/[DESCENDING]
[<границы>] [WHILE <условие>] [FOR <условие>]
которая создает новый файл БД с записями, отсортированными в алфавитном, хронологи-
ческом или числовом порядке по заданным полям. Сортировка выполняется в порядке возрастания
(/А) или убывания
(ID)
значений полей. Допускается сортировка максимум по десяти полям. Оп-
ция /С определяет сортировку независимо от прописных и строчных букв. Команда
• COPY FILE <имя файла 1> ТО <имя файла 2>
делает
копию файла
любого типа.
После копирования или в других случаях нередко требуется
переименовать файл.
Для этого используется команда
RENAME <имя файла> ТО <новое имя файла>
Нередко требуется найти запись не по ее положению в файле БД, а по содержанию полей.
Такой вид поиска предусмотрен, например, в меню команды BROWSE. Способ поиска по содер-
жанию полей зависит от того, созданы ли индексные файлы по этим полям или по их комбинаци-
ям. Для
поиска по неиндексированным полям
используется команда
LOCATE [FOR] <условие> [<диапазон>] [WHILE <условие>]
Эта команда выполняет в активном файле БД поиск первой записи, удовлетворяющей усло-
вию, заданному опцией FOR. Опции <диапазон> и WHILE определяют диапазон и условие начала
и конца просмотра записей.
Для
поиска по индексированным полям
используются команды
SEEK и FIND.
Команда
SEEK <выражение>
выполняет поиск первой записи файла БД с заданным значением индексированного поля. При
этом соответствующий индекс должен быть установлен в качестве главного (управляющего) ин-
декса. Команда
525
FIND <литеральная строка>
аналогична команде SEEK и также выполняет
поиск первой записи в индексированном файле БД с
заданным значением индекса
при установленном соответствующем главном индексе. Отличие со-
стоит в том, что в качестве поискового значения в команде FIND используется не выражение, а
литеральная строка.
Основной командой, предназначенной для
создания нестандартных экранных форм ввода
и вывода
информации, является
@<строка>,<колонка>
[SAY <выр.>
[PICTURE <выр.С>]
[FUNCTION <список
функций>]]
[GET <переменная>
[[OPEN] WINDOW <имя окна>] [PICTURE <выр.С>]
[FUNCTION <список функций>]
[RANGE [<нижний>] [<верхний>]]
[VALID <условие> [ERROR <выр.С>]]
[WHEN <условие>] [DEFAULT <выражение>]
[MESSAGE <выр.С>]]
[COLOR [<стандартная область экрана>] [<нестандартная область
экрана>]]
Эта команда позволяет выводить или вводить информацию в заданном формате в указан-
ные места экрана. Кроме того, с помощью опций SAY этой команды можно выводить данные на
принтер или в файл на диске. Для того чтобы установить вывод информации с помощью данной
команды на экран, принтер или в текстовый файл DOS, используется команда
SET DEVICE TO SCREEN/printer/file <имя файла>
Опция GET выводит и позволяет
обновлять и редактировать данные,
содержащиеся в по-
лях, переменных или массивах.
Собственно
обновление данных
в переменных GET (здесь и ниже
под словом «переменная»
подразумеваются также поля файла БД и элементы массива) выполняется командой READ. кото-
рую следует поместить после данной команды. Эта команда активизирует переменные и выводит
в них значения, находящиеся на экране.
Для
приостановления процесса последовательного выполнения программы
используется
команда
WAIT [<сообщение>] [ТО <переменная>]
которая вызывает паузу до нажатия любой клавиши и высвечивает в нижней строке экрана
сообщение. После нажатия клавиши выполнение программы продолжается, а в переменную зано-
сится код ASCII этой клавиши.
С целью
улучшения восприятия информации
на экране можно использовать команду
@ <строка 1>,<колонка 1> ТО <строка 2>,<колонка 2>
[DOUBLE/PANEL/<cимволы определения рамки>]
[COLOR <код цвета>]
которая рисует на экране прямоугольную рамку, определяемую координатами верхнего ле-
вого - <строка 1>,<колонка 1> - и правого нижнего - <строка 2>, <колонка 2> - углов рамки Опция
DOUBLE позволяет рисовать двойную линию рамки (по умолчанию рисуется одинарная линия),
опция PANEL - рамку в виде сплошной полосы. Кроме того, имеется возможность рисовать ли-