Системные программы для ZX Spectrum 1993 г.

Программа обработки баз данных VU-File - работа с базой данных. Работа с принтером.


В режим работы с БД, который мы будем называть основным
режимом, попадаем из главного меню, нажав клавишу I.

При работе с БД записи располагаются по алфавиту одного из
полей, которое называется упорядочивающим*. При алфавитной
сортировкЬ не делается различий между строчными и прописными
буквами. Если текст упорядочивающего поля в нескольких записях
полностью совпадает, то записи будут выводиться в порядке, обрат-
ном последовательности их ввода в БД. Первую по алфавиту запись
будем называть верхней, а представленную на экране — текущей.

При входе в основной режим на экран выводится верхняя
запись, а в командных строках — список функций, выполнение
которых возможно в этом режиме. Каждая функция вызывается
нажатием клавиши, соответствующей первой букве названия. Си-
стема подменю и команд основного режима изображена в нижней
части схемы. Последовательность расположения их на схеме такая
же, как в командных строках. Рассмотрим их по порядку.

В этот режим вы попадаете также после завершения формиро-
вания нового бланка или при удалении всех записей в режиме
DELETE (пунктирные линии на схеме). Записи вводятся поле за
полем. Переход к следующему полю происходит при нажатии
клавиши Enter. Текст поля при вводе можно редактировать.

используя курсорные клавиши (вправо, влево) и клавишу Delete
(CS/0). Однако, перемещая курсор вдоль поля, следует помнить,
что после нажатия Enter в запись попадет только часть текста от
начала поля до курсора.

Записи, вводимые в режиме ENTER A RECORD, добавляются в
конец файла. Выход из режима осуществляется нажатием Stop
при нахождении курсора в первой позиции первого поля.

Переход от поля к полю осуществляется клавишами CS/6 (курсор
вниз). В пределах поля можно перемещать курсор вправо и
влево. Ввод исправленного поля осуществляется нажатием кла-
виши Enter. Так же, как и в режиме ENTER A RECORD, та часть
поля записи, которая стоит после курсора, будет отброшена.
Используя эту особенность программы, можно очистить поле,
расположив курсор в его первой позиции и нажав Enter. Поэто-
му не следует, как иногда делают начинающие, использовать
Enter для перехода к следующему полю.

Предупреждение для владельцев компьютеров ZX Spectrum 128:
вследствие того, что в режиме ALTER A RECORD VU-File исполь-
зует буфер принтера ZX Spectrum, совпадающий с областью
системных переменных Spectrum 128, в VU-File невозможно
редактировать записи, хотя другие операции (просмотр, попол-
нение БД и пр.) работают.

Программа выходит из режима ALTER A RECORD после обра-
ботки последнего поля.

Команда выдает информацию о состоянии VU-File:

• имя файла БД (фиксируется только после того, как вы записа-
ли файл БД на ленту или диск);

• общее число полей;

• объем использованной и свободной памяти;

• число записей;

• номер упорядочивающего поля.

Выход из режима INFORM осуществляется нажатием любой
клавиши.

Необходимо следить за объемом свободной памяти, так как сама
программа этого не делает, а переполнение БД чревато сбоем
VU-File,

Нажатие любой клавиши, кроме Enter, перемещает курсор к
началу следующего поля. При нажатии клавиши Enter, поле, на
котором находится курсор, становится упорядочивающим.

Это наиболее важный режим при работе с базой данных. Благо-
даря ему можно намного ускорить поиск требуемой информа-
ции: при просмотре записей на экран будут выводиться только
те из них, в тексте заданного поля (или всех полей) которых
найдено вхождение установленной для поиска строки символов
(ключа).

Нажав сразу после вхождения в режим SELECT клавишу Enter,
вы зададите поиск ключа по всем полям записи. Для указания
конкретного поля поиска установите на него курсор, нажимая
любую клавишу, и закрепите выбор клавишей Enter. Далее
вводится ключ — текст его отображается в нижней командной
строке. Завершается ввод нажатием клавиши Enter.

После задания ключа VU-File переходит в режим поиска —
SEARCH MODE. В нем при нажатии Enter на экран в алфавитном
порядке (по упорядочивающему полю) выводятся записи, удов-
летворяющие ключу. Ключ можно поменять, не выходя из этого
режима. Нужно просто набрать текст ключа на клавиатуре и
нажать Enter.

Для выхода из режима поиска нажмите Stop — после чего вам
будет задан вопрос: «Желаете ли вы сохранить ключ, Да/Нет
(Y/N)?». При отказе от ключа (N) будет восстановлен общий
алфавитный порядок записей и выдана верхняя запись. Если
ключ сохраняется (Y), то он по-прежнему будет присутствовать
на своем месте в нижней командной строке, и при работе с БД
на экран будут выводиться только отобранные записи.

На экран выводится следующая упорядоченная по алфавиту
запись.

На экран выводится предыдущая упорядоченная по алфавиту
запись.

Действие ключа отменяется нажатием клавиши S, а также после
выхода в главное меню.

После прекращения работы с БД выбор упорядочивающего поля
сохраняется (в том числе и в файле, записываемом на ленту), а
действие ключа отменяется.

На экран с короткой паузой выводятся записи (начиная с теку-
щей) в соответствии с установленными ключом и порядком.
Пролистывание останавливается нажатием любой клавиши и
продолжается нажатием клавиши L.

Записи распечатываются на принтере, начиная с текущей, в
соответствии с установленными ключом и порядком. Во время
распечатки записи выводятся на экран в формате, установлен-
ном для принтера. Печать можно остановить нажатием любой
клавиши. См. ниже «Работа с принтером».

Запись ликвидируется после подтверждения намерения это сде-
лать нажатием клавиши Enter. Нажатие любой другой клавиши
отменяет команду. Если в результате операции DELETE будут
удалены все до единой записи, VU-File автоматически перейдет
в режим ввода записей (см. пунктирную линию на схеме).

VU-File предоставляет замечательные возможности для распе-
чатки данных на принтере и чрезвычайно гибок в этом отношении.
Это, пожалуй, главное преимущество VU-File, например, перед

программой обработки баз данных Masterfile (см. [1]), которая
печатает данные лишь в режиме копирования экрана*.

Как уже упоминалось, в VU-File предусмотрена возможность
задания специального формата (бланка) для вывода на принтер.
Если принтерный бланк не определен, он совпадает с экранным.

Принтерный бланк формируется в режиме SET PRINTER LAYOUT,
вызываемом из главного меню клавишей 3. Это упрощенный
вариант режима SET RECORD LAYOUT. Упрощенный в том смысле,
что в нем, естественно, нельзя задать цвет. Войдя в режим, мы тдо
же, как при определении формата вывода на экран, размещаем
заголовки полей (причем они могут отличаться от своих экранных
аналогов и располагаться в ином порядке). Затем через Stop выхо-
дим в подменю DATA FIELDS и размечаем расположение полей
записей. Число полей не может превышать количества полей,
заданного для БД. После размещения всех имеющихся в распоря-
жении полей (или после нажатия Stop) совершится выход из режи-
ма в главное меню.

При задании формата распечатки важно помнить, что все пус-
тые строки ниже последнего печатаемого символа записи будут
игнорироваться. Это, с одной стороны, позволяет более компактно
располагать записи по вертикали, а с другой — требует специаль-
ных средств для получения, например, разделительного интервала
между записями (можно оставить строку пробелов в начале бланка,
или поставить в конце для украшения какие-либо символы).

Несколько слов о том, как работает программа печати. При
нажатии клавиши Р (или С) записи выводятся на экран в формате,
который был задан для принтера. Каждая строка текста длиной 32
символа помещается в переменную f$(32) бейсик-блока VU-File.
После этого происходит выход в Бейсик на строку 3000, содержа-
щую оператор LPRINT, который и совершает вывод на принтер:

3000 LPRINT f$( ТО 32): GO TO USR а

Если вы имеете сомнительное счастье обладать принтером типа
ZX-Printer, то можете, вообще ничего специально не делая, по-
лучать на бумаге копии экранных изображений.

Однако большинство пользователей старается приобретать
принтеры, позволяющие печатать 80 и более символов в строке
(например, весьма популярный отечественный принтер МС 6313).
Получив на нем распечатку данных шириной 32 символа, вы
обнаружите, что она занимает едва ли пол-листа.

Есть несколько способов более рационального использования
бумаги. Можно распечатать до конца страницы левый столбец,
переустановить поля на принтере и продолжить печать в правой
части того же листа.

Более элегантно выглядит, однако, следующий прием. Строки
бейсик-блока VU-File, отвечающие за распечатку, нужно изменить
вот таким образом:

110 LET m=PI

3000 LET m=NOT m: LPRINT f$( TO VAL "32");:
IF m THEN LPRINT CHR$ 13;: GO TO USR a

Такая программа будет распечатывать каждые две строки VU-
File в одну строку на бумаге. Переменная m играет роль триггера,
включающего перевод строки после каждой четной строки, пересы-
лаемой из VU-File. Однако, чтобы ваша распечатка смотрелась
красиво или, по меньшей мере, была понятна, надо предусмотреть
соответствующее чередование строк при задании формата в режи-
ме SET PRINTER LAYOUT.

Наконец, если ваш принтер способен печатать сжатым шриф-
том, имеет смысл использовать эту возможность, и еще вдвое
сэкономить бумагу. Подразумевается, что ваш принтер уже настро-
ен на печать сжатым шрифтом при длине страницы 60 строк и
строкой в 128 символов. Реализовать такую распечатку позволит
следующая модификация стандартного бейсик-блока VU-File:

110 LET h=VAL "23673"

3000 GO SUB VAL "4000": LPRINT f$( TO VAL "32");:
POKE h.NOT PI: POKE (h+SGN PI),NOT PI

3200 GO TO USR a

4000 IF PEEK h<Pt THEN IF NOT PEEK (h+SGN PI) THEN RETURN

4010 LPRINT CHR$ VAL "12";: RETURN

Подпрограмма в строках 4000 и 4010 обеспечивает выброс
страницы из принтера перед распечаткой следующего файла (если
была пауза длиннее 15 секунд).

Наибольшую трудность при распечатке в таком формате пред-
ставит оформление бланка в режиме SET PRINTER LAYOUT. По-
скольку каждые четыре строки экрана буДут отображаться одной
строкой распечатки, внешний вид бланка во время его оформле-
ния будет мало напоминать то, что в конечном счете получится на
бумаге.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Программирование - формирование изображения на экране монитора.
Армянское радио - Почему армянам всегда везет ?
Demo Party - мрачный мысли Random'a: "Что мне надо сделать для того, чтобы вы повери в Конструкции Хаоса'999?"
Были - Были древних русичей.
Сценохрония - Краткий обзор новостей от группы RUSH.

В этот день...   21 ноября