ZX-Spectrum & TR-DOS для пользователей и программистов 1994 г.

Электронная картотека MASTERFILE - меню и функции.


МЕНЮ М ФУНКЦИИ

На профессиональном языке то, что мы до сих пор именовали
карточкой, называется записью, Запись, по сути, это совокупность полей,
условно связанных между собой. Каждое поле записи содержит данные
объемом до 128 символов, которые могут быть как числовыми (например,
«0.985»), так и текстовыми (например, «Клиффорд Саймак»).

Текущей записью (полем) называется запись (поле), с которой
Masterfile работает или будет работать в режиме редактирования. В режиме
Display/Print текущая запись отображается на экран верхней.

Рис, В. Рабочий экран Masterfile.

Рис, В. Рабочий экран Masterfile.

В процессе обработки данных записям присва!1вается специальный
атрибут, по которому онб делятся на выбрашше и певыбранлые. Если записи
присвоен атрибут «выбранная», она становится доступной для всех опера-
ций, производимых Masterfile. Невыбраиная запись как бы пропадает для
программы: ее нельзя ни просмотреть, ни отредактировать. Обработка дан-
ных как раз и состоит в том, чтобы с помощью функций поиска найти и
вывести на экран требуемые записи, присвоив им атрибут «выбранные».

Система меню Masterfile имеет несколько уровней вложения. Для
удобства работы с описанием программы функции, входящие в одно и тоже
меню, помечены одинаковым количеством точек, соответствующим уровню
вложения этого меню. Главное меню точкой не помечается.

Add a record ............... * . А

Создать новую запись* Созданная запись автоматически становится выбранной
и текущей. При этом считается, что во все ее поля занесен текст пулевой длины.

• Add & Item «••••»»......«..«А

Добавить поле в текущую запись* На запрос Give data raf задайте имя поля (одну
из букв A...Z), затем, ка подсказку Enter text 1-128 chars, введите данные — текст
длиной не более 12В символов, после чего нажмите клавишу Enter.

•Replace item ............... J

Редактировать данные зшля. Изменения будут вноситься в поле, имя и
название которого отображаются на экране — текущее поле. (Сменить
текущее поле можно с помощью функций Next Item или Get Item). На
подсказку Enter text 1-128 chars введите новые данные. Ввод пустой строки
не изменяет содержимого поля.

•Erase item . . .. .............. Е

Очистить текущее Еоле. Удаляются данные из текущего поля текущей
записи. Для подтверждения операции на запрос Y to confirm нажмите
клавишу Y, для отмены —- любую другую.

•Next item ...................N

Вызвать следующее поле. Переход осуществляется только к заполненным
полям.

•Display/Print ».. *............ D

Перейти в режим просмотра. Функция аналогична одноименной функции
главного меню (ем. ниже).

•Get item ...........«»..... .G

Вызвать поле по имени» На подсказку Give data ref введите имя поля (A...Z).
Переход осуществляется только к заполненным полям. Для отмены опера-
ции нажмите клавишу Enter.

•Prompt items................Р

Заполнить поля. На экран последовательно выводятся имена и названия
незаполненных полей, имеющих название (названия полям присваивают-
ся с помощью функции Name data ref главного меню). Данные вводятся на
запрос Enter text 1-128 chars.

•Another record ..............=

Создать новую запись. Аналогична функции Add a record главного меню.
Введена для удобства работы, чтобы избежать промежуточной операции
— выхода в главное меню.

•Main menu..................М

Выйти в главное меню.

Choose a report ...............С

Установить формат вывода записи. На запрос Give report ref введите имя
формата (один из символов A...Z или 0...9). Если ранее ни один формат не
был создан, управление будет передано функции Edit format def. Для отмены
функции и возврата в главное меню нажмите клавишу Enter.

Display/Print..................D

Просмотреть выбранные записи в установленном формате. Если ни одна из
записей не была выбрана, поля формата не заполнятся.
Вывод на экран перечня функций меню Display /Print осуществляется нажа-
тием клавиши Q. Для выполнения какой-либо из них необходимо, повторно
нажав Q, вернуться к просмотру записей и нажать клавишу, соответствую-
щую требуемой функции.

Операции в меню Display/Print производятся только над выбранными запися-
ми.

«Next page..................N

Продолжить просмотр записей. Если в установленном формате на экране
поместилась только" часть записей, то с помощью этой функции можно
продолжить вывод.

•iack one record..............О

Установить текущей предыдущую запись.

•iack to 1st rec...............В

Установить текущей первую запись.

•Advance l-f rec .............1...9

Перейти на 1...9 записей вперед. При нажатии цифровой клавиши проис-
ходит переход вперед на соответствующее количество записей. Нажатие
клавиши 1, например, установит текущей следующую запись.

•Print ......................Р

Копировать экран на принтер (см. также описание меню Exec User Basic).

•Update top rec ..............U

Изменить текущую запись. Вызывается меню, аналогичное Add a record
главного меню.

•Erase top rec................i

Уничтожить текущую запись. После утвердительного ответа (Y) на запрос
Y to confirm текущая запись удаляется из базы.

•Omit top record ..............О

Отказаться от записи. Текущая запись исключается из числа выбранных.

•Copy top record ............. С

Дублировать текущую запись. Создается новая запись, аналогичная теку-
щей.

•Search the file ............... S

Выбрать запись. Аналогична одноименной функции главного меню.

•Total/Average ,. . ...........Л

Подсчитать сумму и среднее арифметическое. Функция аналогична одно-
именной функции главного меню (см. ниже).

•Select report ................R

Сменить формат вывода записей. На запрос Give report ref введите имя
формата (A...Z или 0...9). Запрос будет повторяться до тех пор, пока не
будет введено имя существующего формата, либо нажата клавиша Enter,
которая отменит функцию.

. «Main menu ...».............. М

Выйти в главное меню.

•Quit this menu ®

Выйти из меню. Возврат к функции просмотра записей из режима отобра-
жения меню Display/Print.

Edit format def........ . .......1

Редактировать формат вывода записей. Меню предназначено для создания
новых или редактирования уже существующих форматов, Каждому формату
присваивается имя — буква (A...Z) или цифра (0...9), Таким образом, в одной
базе может быть задано не более 36 форматов.

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

•Add new format .. -........... А

Создать новый формат. На запрос Give report ref введите имя нового
формата. После этого на экране появится новое меню.

••Add new ©lament........,..А

Ввести новый элемент формата.

•••Data from reed ...........D

Установить формат вывода данных поля. На запрос Give data гес введите
имя поля и ответами на последующие запросы задайте формат его вывода:
Line — верхняя граница окна поля — номер строки от 0 до 21, начиная
с которой будут выводиться данные.
Micro-Prt Y/N — режим вывода текста на экран:

N — установить режим печати по 32 символа в строке (стандартный
формат ZX Spectrum);

¥ — режим микропечати,
При выборе режима микропечати последует дополнительный запрос
42 Pitch Y/N:

Y — установится режим печати по 42 символа в строке;

N — по 51 символу.
Column — левая граница окна поля — номер столбца, начиная с
которого будут выводиться данные поля. Следует обратить внимание
на то, что положение символа в строке зависит от выбранного режима
печати, например, при 42-символьном режиме 21-я позиция соответ-
ствует середине экрана.

Width — ширина окна поля — количество столбцов, отводимых для
вывода данных поля.

pepfgt — высота окна поля — количество строк, отводимых для вывода
данных поля.

Параметры Lin®, Column, Width и Depth задают соответственно коорди-
наты начала и размеры окна для вывода данных поля.
Ршртг — цвет фона окна поля — номер цвета фона (0 - черный, 1 -
синий, 2 - красный, 3 - фиолетовый, 4 - зеленый, 5 - голубой, 6 -
желтый, 7 — белый). Цвет тона автоматически устанавливается наи-
более контрастным к цвету фона.

irighf Y/N — уровень яркости печати данных поля. Y — повышенная
яркость, N — обычная.

inverse Y/N — инверсия (Y). N — без инверсии.

Flesh Y/N — мерцание (Y)- N — без мерцания. При использовании
микропечати запрос не выдается.

Pmd Y/N — окраска всего окна поля в соответствии с установленными
атрибутами (Y). N — атрибуты будут выставляться только в позициях,
в которые выводятся данные поля.

NuH test — текст, который необходимо вывести в окно при отсутствии
данных в поле записи.

•••Literal text...............L

Задать пояснительный текст и установить формат его вывода. На
запрос Enter text 1-128 chars введите пояснительный текст, который Вы
хотите включить в формат представления записи. Формат поясни-
тельного текста устанавливается аналогично формату вывода данных
поля записи (Data from reed)*.

•••Box ....................В

Построить прямоугольник. Для построения на экране прямоугольни-
ка введите его параметры в ответ на следующие запросы:
X coord — ^ координаты левого верхнего угла

Y coord — ) прямоугольника

Depth — N] высота (вниз) и ширина (вправо)
Width — ) прямоугольника.

Верхняя левая точка экрана соответствует координате Х=0, Y-0. Раз-
меры прямоугольника не должны быть больше, чем 255 точек (ши-
рина) на 175 (высота), то есть не должны превышать размеры экрана,

••• Horizontal lane............Н

•••Vertical line..............У

Провести горизонтальную и вертикальную линии соответственно, На
последующие запросы введите параметры линии:
X coordf — S координаты начала

Y coord — ) линии

Length — длина линии. Горизонтальная линия строится вправо отно-
сительно начала, а вертикальная — вниз.

*) Этот и последующие элементы формата служат исключительно для офор-
мления.

•••Previous Menu -...........M

Возврат в предыдущее меню (Edit format del).

• • Replace element ■............ , R

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

••Erase element..............Е

Удалить текущий элемент формата. После утвердительного ответа (Y) на
запрос Y to confirm текущий элемент удаляется из формата.

••Next element ..............N

Перейти к следующему заданному элементу формата. Переход происхо-
дит циклически.

••Copy format...............С

Дублирование текущего формата. После ввода на запрос Give report ref
имени (A...Z, 0...9) будет создан новый формат, аналогичный текущему.
Если формат с таким именем уже существует, выдается сообщение
Already defined и выполнение функции отменится.

••Delete format............. .X

Удаление текущего формата. После утвердительного ответа (Y) на запрос
Y to confirm удаляется текущий формат.

••Display/Print ..............D

Перейти в режим просмотра. Функция аналогична одноименной функ-
ции главного меню.

• «Previous menu..............М

Выйти в предыдущее меню (Add new format).

•Review format ...............R

Редактирование существующего формата вывода записей. На запрос Give
report ref введите имя ранее определенного формата. При вводе имени
несуществующего формата будет выдано сообщение No such format defined
и выполнение функции отменится.

Формат редактируется в подменю, аналогичном Add new format (меню Edit
format definitions).

•Main menu..................M

Выйти в главное меню.

Load a file....................L

Загрузить файл базы данных. На запрос Give file name введите имя файла,
после чего он будет загружен с магнитного носителя. Находящаяся ранее в
памяти база данных при этом уничтожается. В дисковой версии программы
на экран предварительно выводится каталог диска.

Name data ref.................N

Определить поле.

•Add a item .................А

Задать имя и название поля. На запрос Give data ref введите имя поля (A...Z),
затем, на запрос Enter text 1-128 chars его название — текст длиной не более
128-ми символов, после чего нажмите клавишу Enter. Если поле уже опреде-
лено, то появится сообщение Item afready in record, и выполнение функции
отменится.

•Keplace item ................R

Редактировать название текущего поля. Имя и название текущего поля
отображаются в верхней части экрана.

•Erase item ..................Е

Удалить название текущего поля. После утвердительного ответа (Y) на
запрос Y to confirm, удаляется название текущего поля (само поле остается).

•Next item...................N

Перейти к следующему полю. Переход осуществляется только к полям,
имеющим название.

•Display/Print................D

Выйти в режим просмотра. Функция аналогична одноименной функции
главного меню.

•Get item ...................G

Вызвать поле по имени. На запрос Give data name введите имя поля (A...Z).
Нажатие клавиши Enter отменит выполнение функции. Переход осущест-
вляется только к полям, имеющим название.

•Prompt items................Р

Присвоить полям названия. На запрос Enter text 1-128 chars введите название
поля, имя которого отображается в верхней части экрана. Переход к
следующему полю происходит по нажатию клавиши Enter.

•Another record ..............=

Добавить новую запись. Аналогична функции главного меню Add a record
и введена для удобства работы.

•Main menu..................М

Выйти в главное меню.

Search the file.................S

Выбрать записи.

•Select from all ...............A

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

•Select from sel...............L

Сделать выборку из ранее выбранных записей.

•Display/Print ................D

Войти в режим просмотра. Функция аналогична одноименной функции

главного меню .

После выбора любого из режимов (Select from all или Select from sel) на
экране появится запрос Giva data ref об имени поля, в котором будет произ-
веден поиск. После его ввода нужно определить тип аргумента для поиска:

• •Character . „ . . .............С

Искать символьную строку.

••Numeric . . -...............N

Искать численное значение.
Далее задается од и о из 5 условий выбора:

• * «Equal to ................ Е

Выбрать запись при равенстве аргумента и содержимого поля. При
поиске символьного аргумента выбор осуществляется, если строка
аргумента совпадает с началом строки поля.

•••Unequal to ...»..........U

Выбра?& 'запись неравенстве аргумента и содержимого поля.

than ................L

Выбрать запись, если аргумент меньше значения содержимого поля.
При поиске символьного аргумента сравниваются ASCII-коды сим-
волов. Запись будет выбрана, если при последовательном сравнении
код каждого символа аргумента, начиная с первого, меньше соответ-
ствующего кода символа строки поля. При сравнении строк заглав-
ные и прописные буквы не различаются и считается, что A<B<C<...

• ••Greater Лот «........... .G

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

•••String search .............S

Выбрать запись при совпадении строки аргумента с фрагментом строки
поля. Режим может быть выбран только при поиске символьной строки.

После задания одного из перечисленных выше условий выбора записей на
запрос Argument^ введите значение аргумента для поиска. Если при задании
поиска но численному аргументу на запрос введена символьная строка,
появится сообщение Arg not numeric.

Если в процессе поиска числового аргумента программа встретит поле,
содержащее символьную строку, будет выдан запрос Non-numeric data: Skip
Update. Возможны два варианта последующих действий: игнорировать за-
пись — считать, что в поле записан ноль (клавиша S) либо перейти в режим
редактирования записи (Update), где можно исправить ошибку (клавиша U).

•••Мши menu ..............М

Выйти в главное меню.

••Previous menu..............М

Выйти в предыдущее меню (Search the file).

•Main menu..................М

Выйти в главное меню,

invert selection ................I

Инвертировать выборку. Все выбранные записи становятся невыбранными
и наоборот.

Reset selection.................R

Отменить выбранные записи. Все записи становятся невыбранными.
Purge sel reeds................Р

Удалить все выбранные записи. Удаление подтвердите клавишей Y; нажатие
любой другой клавиши отменит операцию.

Total / Average ................Т

Подсчитать сумму и среднее арифметическое. На запрос Give data item введите имя
поля (A...Z), над числовыми значениями которого необходимо произвести матема-
тические действия. Сумма (Total) и среднее арифметическое значение (Average)
будут подсчитаны для всех выбранных записей и результат выведен на экран.
Если в какой-либо записи поле содержит нечисловое значение, выдается
сообщение Non-numeric data: Skip Update. Возможны два варианта последующих
действий: игнорировать запись — считать, что в поле записан ноль (клавиша
S), и перейти в режим редактирования записи (Update), где можно исправить
ошибку (клавиша U).

Save Prog /File................V

Сохранить записи на магнитном носителе. Для отмены функции нажмите
клавишу Enter.

•Program+file................Р

Сохранить записи вместе с бейсик-программой.

•File only ....................F

Сохранить только записи. База данных записывается на магнитный носи-
тель в виде отдельного файла (массива данных). В последующем файл,
содержащий данные записей, загружается в Masterfile с помощью функ-
ции Load a fSe главного меню.

Exec User Basic................U

Обработка выбранных записей бейсик-программой. После утвердительного
ответа (Y) на запрос Y to confirm, управление будет передано бейсик-блоку
Masterfile (нажатие любой другой клавиши отменит операцию).
При выполнении программы на Бейсике будут последовательно вызываться
подпрограммы, расположенные начиная со строк 4900, 5000, 6000, 7000 и
9000. Этих подпрограмм в исходном варианте Masterfile нет— Вы сами можете
написать их, включив необходимые Вам дополнительные процедуры обработки
базы данных. Для возврата из подпрограмм используется оператор GO TO USR R
(бейсик-переменная R содержит адрес возврата в кодовый блок Masterfile).

Ниже приведен алгоритм вызова бейсик-подпрограмм, поясняющий
работу функции User Bask:

1. 4900. Подпрограмма инициализации глобальных переменных, под-
грузки рабочих файлов и т. п. Управление на нее передается только один
раз — сразу после выбора функции User Basic.

2. После выхода из подпрограммы (оператор GO ТО USR R), если в базе
есть выбранные и еще не обработанные бейсик-программой записи, то
осуществляется переход к п.З (вызывается подпрограмма, расположенная со
строки 5000), в противном случае — к п.9.

4. После выхода из подпрограммы, если в записи есть необработан-
ные поля, происходит переход к п. 5, в противном случае —- к п.7.

нить данные различных полей для последующей совместной их обработки.

С$(1) имя поля (A...Z);

С$(2 ТО ) данные поля,

6. После выхода из подпрограммы, если в записи есть еще необрабо-
танные поля, происходит переход к п.5, в противном случае — к п.7.

после обработки всех полей записи и обычно используется либо для моди-
фикации и удаления существующих полей записи, либо для добавления
нового поля. Осуществляется это изменением строкового массива С$:

С$(2 ТО ) новые данные поля.
для удаления поля:

С$(1) имя удаляемого поля (A...Z) (удаление произойдет

только из обрабатываемой записи):
С$(2 ТО ) пустая строка (элементы массива обнулены).

С$(1) буква (в верхнем регистре) — имя добавляемого

поля (A...Z) (поле будет создано без названия);
С${2 ТО ) данные поля.

В этой подпрограмме можно изменить только одно поле обрабатыва-

8. После выхода из подпрограммы, если в базе данных есть еще
необработанные функцией User Basic записи, происходит переход к п. 2, в
противном случае — к п. 9.

ние передается на строку 4120 бейсик-программы. В ориганальнойГверсии
оператором вызова ^юбой другой процедуры, в том числе и процедуры

РУСИФИКАЦИЯ MASTERFILE

Описываемый способ русификации не является лучшим*, но он

обладает существенным достоинством — при относительной простоте он
практически не ограничивает возможности Masterfile**.

Перед началом русификации очистите базу данных (функция Purge
selected records главного меню) удалите также существующие имена полей
(функция Erase Item меню Nam© ёшЫ re!) и форматы вывода (функция Deiefe
format меню Edit formet del). Сохраните Masterfile совместно с бейсик-про-
граммой (функция Program+file меню Save Prog/File).

Начинать обучение Masterfile русскому языку следует с бейсик-блока.
Для этого, предварительно очистив память компьютера оператором NEW,
загрузите исходный вариант бейсик-блока в память с помощью оператора
MERGE (это позволит избежать автозапуска программы):

для кассетной версии: MERGE "MF"

для дисковой версии: RANDOMIZE USR 15619: REM : MERGE "MF"

Внимание! В процессе модификации бейсик-блока ни в коем случае
не выполняйте операторов CLEAR и RUN.

Б загруженной бейсик-программе измените строку с номером 1:
I PRINT;: PAPER VAL "7": GO TO USR VAL "56981"

Если Вы работаете с дисковой версией, внесите в программу также и

другие изменения и дополнения:

4000 GO SUB VAL "4085": INPUT PAPER VAL "7";(c$( TO VAL "32"));

LINE c$: GO TO USR R

4020 LET e*=USR VAL "15619": REM ; SAVE c$( TO 8) DATA f$()

4021 GO TO VAL "4080"

4030 LET «=USR VAL "15619": REM : SAVE c$( TO 8) LINE 4036

4031 GO TO VAL "4080"

4036 LET e=USR VAL "15619": REM : LOAD "MFrmcode"CODE

4037 IF e^NOT PI THEN GO TO VAL "1"

4038 PRINT "Can't bad file MF!": STOP

4040 LET c$=STR$ (VAL c$( TO VAL "14")/VAL c$(VAL "15" TO VAL "19")):

GO TO USR R

4050 LET e=USR VAL "15619": REM : LOAD c$( TO 8) DATA f$()

4051 GO TO VAL "4080"

4080 IF e<> NOT P! THEN PRINT #0; INK VAL "5"; PAPER VAL "2";
"Error in file ";c$( TO VAL "8");"l": BEEP VAL ".5",VAL "1": PAUSE NOT PI

4082 GO TO USR R

4085 LET e=NOT Ph IF c$( TO PI)="SAV" OR c$(PI+PI TO PI*PI)-"File " THEN

LET e^USR VAL "15619": REM : CAT

4086 IF esNOT Pi THEN RETURN

4087 PRINT "Insert disk!": STOP

После этого запишите модифицированную бейсик-часть на магнит-
ный носитель, выполнив для этого операторы:

для кассеткой версии: SAVE "MF rus" LINE 4036

для дисковой версии: RANDOMIZE USR 15619: REM : SAVE "MF rus" LINE 4036

*) Более совершенные способы русификации привести здесь не представля-
ется возможным из-за большого объема соответствующей информации.

**) Подробнее о приведенном методе см. «Русификация ZX Spectrum. Ис-
пользование символов, определяемых пользователем».




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Реклама - реклама и объявления.
Программирование - Процедуры для получения значений необходимых при создании чего-то на бордере или мультиколора.
Железо - Как перегнать файлы со Spectrum'а на PC.
Введение - Мы рады представить вашему вниманию превую коммерческую версию нашего журнала.
GFX - Фотореализм: способы передать ненасыщенные цвета, присущие реальным фотографиям

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