MASTERFILE
ЭЛЕКТРОННАЯ КАРТОТЕКА
Электронная картотека Masterfile является наиболее мощной
среди программ обработки баз данных, существующих для Speccy.
Хотя скромный (по сравнению с профессиональными машинами)
объем ОЗУ ZX Spectrum и ограничивает возможность обработки боль-
шого количества информации, но, если речь идет, например, о каталоге
домашней библиотеки или фоиотеки, списке телефонов друзей и подруг
(как бы много у Вас их ни было) — в этих случаях программа Masterfile
может оказаться незаменимой. Она освободит Вас от необходимости
вручную заполнять, сортировать, искать и производить множество дру-
гих операций с сотнями карточек.
Введенные в базу данные в любой момент в заданном порядке и
с нужной степенью полноты могут быть представлены на экране ком-
пьютера (причем с различным количеством символов в строке: 32, 42
и 51). Р1нформацию можно вывести и на принтер.
Masterffle обеспечит Вам не только хранение, но и обработку инфор-
мации. Например, занеся в базу числовую таблицу, Вы сможете вычислить
сумму и среднее арифметическое значение по каждому из ее столбцов.
Предусмотрена также возможность создания дополнительных
процедур обработки данных, что позволит Вам самостоятельно расши-
рять функции Masterfile.
Мы будем описывать версию программы, русифицированную
одним из авторов специально для этой книги. Подробные сведения о
русификации Masterfile приведены в конце описания.
СТРУКТУРА MASTERFSLE
Masterfile состоит из двух частей: кодового блока и блока, написанного
на Бейсике. Кодовый блок содержит основную программу обработки базы
данных. В бейсик-части размещены подпрограммы загрузки и сохранения
базы данных, распечатки данных на принтере, а также подпрограмма,
обеспечивающая запуск Masterfile. Перечисленные подпрограммы можно
модифицировать или заменять другими (для этого они написаны на языке,
доступном и начинающим программистам). Дополнительные процедуры
обработки базы данных также пишутся на Бейсике.
В бейсик-части программы имеются специальные переменные, по-
средством которых осуществляется связь между двумя блоками Masterfile
(подробнее см. описание меню User Basic).
Masterfile позволяет записывать информацию на магнитный носитель
ь двух видах: отдельным массивом (файлом базы данных) и совместно с
бейсик-программой, как ее переменную*. Запись базы данных вместе с
бейсик-блоком дает возможность сохранить созданные Вами дополнительные
процедуры. Такой персонализированный вариант Masterfile заменяет исход-
ную бексик-часть программы.
ЗАГРУЗКА И ЗАПУСК MASTERFILE
Поскольку в компьютере одновременно работают бейсик-часгь
Masterfile и программа в кодах, то область памяти, в которую будет загружен
кодовый блок, нужно «защитить» оператором CLEAR. Но сделать это можно
только до зшрузки бейсик-блока, так как выполнение оператора CLEAR обнуляет
неременные Бейсика (что неизбежно приведет не только к исчезновению
информации, сохраненной в базе данных, но и к разрушению самой програм-
мы). Таким образом, загрузка Masterfile происходит следующим образом:
1.. Выполняется оператор CLEAR ХХХХХ—1,
где ХХХХХ — адрес загрузки кодовой части Masterfile.
2. Загружается бейсик-часть Masterfile.
3. Управление передается на строку 4036, начиная с которой размещена
подпрограмма загрузки кодовой части Masterfile и запуска программы.
Адрес ХХХХХ зависит от версии Masterfile. Для описываемой версии
он равен 5698!.
Выполнение всех перечисленных операций разумно поручить специ-
альному загрузчику, один из вариантов которого приведен в конце описания
Masterfile.
ПРИМЕР РАБОТЫ С MASTERFILE
Masterfile имеет обширнейшую систему меню**, разобраться с которой
мегодом «научного тыка» не так то просто. При работе с программой чрезвы-
чайно важна последовательность действий, которую мы и хотим продемонст-
рировать на примере составления каталога небольшой библиотеки. Подробное
описание всех меню ж функций Masterfile будет приведено позже.
Начинать создание базы данных нужно с очистки Masterfile от
предыдущих записей. Для этого» находясь в главном меню (оно появляется
на экране сразу после загрузки программы, рис. 7), нажмем клавишу Р
(Purge selected records — удаление всех выбранных записей), и подтвердим
свое намерение клавишей Y (Yes — Да). После выполнения этой операции
Masterfile будет готов к созданию новой базы данных.
Прежде всего определим, какую информацию о книгах нам хотелось
бы хранить в компьютере. Для самого простого каталога,' наверное, будет
достаточно карточки со следующими данными:
1. Автор книги
2. Название книги
3. Издательство и год издания
4. Автор перевода
5. Комментарии
*) База данных в бейсик-блоке размещается в специальной переменной F$.
**) Выбор функций в Masterfile осуществляется нажатием на указанную
в меню клавишу.
Каждое из этих данных про-
грамма будет заносить в отдельный
раздел, называемый полем. Следо-
вательно, для организации нашей
картотеки необходимо задать 5 по-
лей. Сделать это можно в специаль-
ном меню, для перехода в которое
нажмем клавишу N (Name Data ref-
erence — задать название поля). В
этом меню выберем функцию А
(Add item — добавить элемент), по-
сле чего Masterfile выдаст запрос
Give data reference, на который нуж-
но ввести имя определяемого поля
— одну из букв латинского алфа-
вита (A...Z). Полю, кроме имени,
присваивается также и словесное название типа «Автор», «Перевод» и т. д.,
необходимое только как комментарий. Название вводится после имени на
запрос Enter text 1-128 characters (введите текст длиной не более 128 символов).
Итак, зададим нужные нам 5 полей*:
А А АВТОР J
А N НАЗВАНИЕ J
А 1 ИЗДАТЕЛЬ J
А Р ПЕРЕВОД J
А К КОММЕНТАРИЙ^
Теперь приступим к заполнению карточек нашего каталога. Нажав
клавишу М (Main menu), выйдем в главное меню, далее перейдем в меню А
(Add a record — добавить запись) и в нем выберем функцию Р (Prompt items
— заполнить поля). В верхней части экрана последовательно будут появлять-
ся имена и названия полей, в нижней — запрос Enter text 1-128 characters, на
который и будем вводить данные о первой книге:
А АВТОР
Enter text 1-128 chars
ГЕРМАН ГЕССЕ J
N НАЗВАНИЕ
Enter text 1-128 chars
ШР А В БИСЕР J
I ИЗДАТЕЛЬ
Enter text 1-128 chars
НОВОСИБИРСКОЕ КНИЖНОЕ ИЗДАТШЬСШО 1991J
P ПЕРЕВОД
Enter text 1-128 chars
C.AflTAJ
К КОММЕНТАРИЙ
Enter text 1-128 chars
J
Поле комментария мы оставили не заполненным, нажав Enter без ввода
тексга.
*) В описании примеров используются следующие обозначения: J — кла-
виша Enter, полужирным шрифтом выделяется текст, вводимый с клави-
атуры, нормальным — текст, выводимый на экран, курсивом — поясне-
ния.
Рис. 7. Главное меню Masterfile.
Рис. 7. Главное меню Masterfile.
Еще раз нажав клавишу Р, заполним вторую карточку:
А АВТОР
Enter text 1-128 chars
ФРЦДРИХ НИЦШЕ J
N НАЗВАНИЕ
Enter text 1-128 chars
ТАК ГОВОРИЛ ЗАРАТУСТРА J
I ИЗДАТЕЛЬ
Enter text 1-128 chars
москва, "инйербук", iff®j
P ПЕРЕВОД
Enter text 1-128 chars
B.PblHKEIH4AJ
К КОММЕНТАРИЙ
Enter text 1-128 chars
совремвмьй mmmrj
Теперь в нашем каталоге заполнены уже две карточки, и пора поза-
ботиться о формате их вывода, то есть определить, в каком виде будет
представлена информация на экране. Начнем с самого простого формата —
будем выводить только имя автора и название книги. Перед тем, как
приступить к оформлению карточек, зададим общий вид экрана — цвет
фона, бордюра, высоту карточек. Выйдем в главное меню (клавиша М),
нажмем клавишу Е (Edit format definitions — редактировать формат вывода
записей) и в появившемся меню выберем функцию A (Add new format —
добавить новый формат). На запрос Give report referent® (Введите имя форма-
та) введем имя формата — один из символов A...Z или G...9, например, О
(обратите внимание на то, что имя формата никоим образом не связано с
именами полей). В верхней части экрана появится красная надпись General
(общий). Выберем функцию R (Replace element — редактирование существу-
ющего элемента) и на запросы Рарег= и Border= введем номера цветов фона
и бордюра, например, нажав в обоих случаях клавишу 5, зададим полностью
голубой экран. На запрос Sequence^ ответим А (автор), определяя таким образом
имя поля, по которому карточки будут сортироваться в алфавитном порядке (к
сожалению в большинстве русифицированных версий Masterfile эта функция
не выполняется*). И, наконец, зададим интервал (Interval—), через который
карточки будут выводиться на экран. К примеру, для того, чтобы каждой из
них отвести одну строку, введем число I. После этого мы снова окажемся в
меню Edit format definitions и приступим к созданию формата вывода полей
карточки: нажмем клавиши A (Add new element — добавить новый элемент),
D (Data from record — элемент данных) и на запрос Give data ref введем имя
первого поля — А (автор). Отвечая на последующие вопросы, определим
местоположение и размеры поля:
Line— 9 J строка, начиная с которой будет выводиться имя автора
Micro-Prt Y/N ¥ микропечать — да
42 Pitch Y/N N 42 символа а строке — нет. Текст поля карточки будет
выводиться в 51-символьном режиме
Column= в J номер столбца, начиная с которого будет размещаться текст
Width= 2® J ширина окна поля в знакоместах
Depth— 1J высот* окна в строках
Papers цвет окна — желтый
*) Страдает этим и описываемая версия.
Bright Y/N Y текст выводить с повышенной яркостью
Inverse Y/N N и без инверсии
Далее на запрос Pad Y/N ответим Y, и заданное окно будет целиком
закрашиваться установленными цветами (в противном случае атрибуты
окна изменялись бы только в месте вывода текста).
На запрос Null text= (текст, выводимый в случае, когда поле не содержит
информации) ответим СБОРНИК.
В результате всех этих операций мы сообщили программе, в каком
биде она будет представлять на экране имя автора. Аналогично зададим
формат вывода поля названия книги:
A (Add new element)
D (Data from record)
N имя поля названия книги
Line= в J
Micro-Prt Y/N Y
42 Pitch Y/N N
Column- 2® J
Width= 3iJ
Depth= 1J
Paper= £J
Bright Y/N Y
Inverse Y/N N
Pad Y/N N
Null text=J
Самое время просмотреть результаты наших трудов. Нажмем клавишу
D (Display/Print — перейти в режим просмотра карточек) — на экране появятся
имена авторов и названия двух книг, на которые мы уже заполнили карточки.
Теперь таким же образом можно занести в Masterfile данные о всех
книгах Вашей библиотеки. Однако работать с полученным каталогом пока
еще невозможно — в режиме Display/Print на экране компьютера представ-
ляется только часть занесенной информации о книгах (автор и название).
Попробуем создать новый формат, который в приятном для глаза виде выводил
бы на экран все данные о книгах. С этой целью в меню Edit format definitions
выберем функцию Add new format (добавить новый формат) и на запрос Give
report reference введем имя нового формата, скажем, 1. Далее повторим уже
знакомые действия по созданию формата, но с некоторыми вариациями.