Cтраница 4
![]() |
Диалоговое скис - программы записи-добавления в файл. [46] |
Перед выводом в файл его необходимо открыть. Если программа, формирующая выходной файл, уже использовалась, то возможно, что файл с результатами работы программы уже есть на диске. Поэтому программист должен решить, как поступить со старым файлом: заменить старые данные новыми или новые данные добавить к старым. Способ использования i - ii-рого nups iHi a определяется во время открытия файла. [47]
Файлы на магнитной ленте создаются с использованием так называемого принципа поколений. При внесении изменений в файл, находящийся на одной катушке, результирующий файл записывается на новую магнитную ленту. В случае возникновения сбоя производится повторный пуск со старым файлом. [48]
Новый файл является физически новым файлом, потому что ограничения последовательного доступа приводят к невозможности перезаписи на входной ( INPUT) файл. Старый файл сотрудников перестает существовать, а новый файл сотрудников становится старым файлом сотрудников для очередного цикла или для другого вида обработки. Слежение за процессом этих изменений, выполнение определенных действий по удалению старого файла и модификация меток может быть довольно трудоемкой работой на больших установках. Идентификационные номера сотрудников имеют весьма важное значение для этого процесса. Поэтому так важно, чтобы эти номера записывались с контрольной цифрой во избежание удаления записи петого сотрудника. [49]
Можно быстро создавать стандартные отчеты из командной строки MATLAB a, используя файлы setup, поставляемые по умолчанию с Report Generator. Можно настраивать свои отчеты, создавая с помощью Setup File Editor новые или исправляя старые файлы setup. Setup File Editor обеспечивает простой в использовании графический интерфейс пользователя для Report Generator. [50]
Другая проблема заключается в способе, с помощью которого старый файл сотрудников формируется в первый раз. Это несколько похоже на поиски начала кольца, так как старый файл преобразуется в новый файл, который должен быть сразу же назван старым файлом с тем, чтобы служить входным файлом для очередного процесса внесения изменений. В примере программы, приводимой в этом разделе, первоначально имеется пустой, но помеченный старый файл сотрудников, из которого с помощью добавления к нему записей изменений создается новый файл сотрудников. При последующем выполнении программы уже возможны удаления, изменения, а также и добавления записей. Процесс присваивания меток управляется диспетчером базы данных и не рассматривается в данном примере. [51]
![]() |
Структурная схема команды Save. [52] |
Часть меню, содержащая опции Change, Backup и Overwrite, возникает только в том случае, когда файл с указанным именем уже существует на диске. Тогда опция Change приводит к замене имени файла. При выборе опции Overwrite новый файл записывается на место старого. Старый файл при этом удаляется. [53]
Поскольку процедурой Editor первым делом выполняется инициализация, рассмотрим вначале процедуру StartUp. Она определяется при условии, что пользователь желает отредактировать существующий файл или создать новый текст. Если выбран существующий файл, to процедура StartUp получает имя файла, открывает файл и считывает его в память. Как только получен старый файл или пользователь выбрал создание нового текстового файла, инициализируются переменные редактора. [54]
В результате внесения изменений в файл сведений его структура усложняется, появляется много записей, удаленных логически, но не физически. Возможен также вариант заполнения всей памяти, отведен ной для файла сведений. В связи с этим появляется необходимость в реорганизации файла сведений, которая заключается в уплотнении имеющихся сведений путем удаления логически стертых записей и корректировке связей между фактами и документами. Программа NW REORG последовательно выбирает сведения из старого файла, производит необходимые исправления и записывает на промежуточные носители. После обработки всего фонда сведения повторно загружаются в новый файл. [55]
Второй пример, относящийся к обработке файлов, связан с редактированием последовательного файла. Предположим, что существует главный файл, содержащий много записей, и файл изменений, содержащий относительно немного записей. Программа последовательного редактирования читает информацию из старого главного файла с именем старыйфайл и из файла изменений под именем измфайл, создавая при этом измененный главный файл с именем новыйфайл. Каждый шаг выполнения программы связан либо с копированием записи из старого файла в новый, либо с модификацией записи старого файла в соответствии с содержимым файла изменений. Существуют три типа модификаций: замена, исключение и вставка. Замена изменяет значение главной записи, при исключении запись удаляется из файла, а вставка связана с созданием новой записи. Информация, требуемая для замен и вставок, содержится в файле изменений. Замена записей - по существу избыточная операция, поскольку она может быть выполнена с помощью исключения и вставки, но мы все же оставили эту операцию. [56]
Второй пример, относящийся к обработке файлов, связан с редактированием последовательного файла. Предположим, что существует главный файл, содержащий много записей, и файл изменений, содержащий относительно немного записей. Программа последовательного редактирования читает информацию из старого главного файла с именем старыйфайл и из файла изменений под именем измфайл, создавая при этом измененный главный файл с именем новыйфайл. Каждый шаг выполнения программы связан либо с копированием записи из старого файла в новый, либо с модификацией записи старого файла в соответствии с содержимым файла изменений. Существуют три типа модификаций: замена, исключение и вставка. Замена изменяет значение главной записи, при исключении запись удаляется из файла, а вставка связана с созданием новой записи. Информация, требуемая для замен и вставок, содержится в файле изменений. Замена записей - по существу избыточная операция, поскольку она может быть выполнена с помощью исключения и вставки, но мы все же оставили эту операцию. [57]