Правила и порядок работы с файлами последовательного типа — это правила и порядок работы с файлами, хранящими информацию в неструктурированном (для поиска и обращения) виде.
Введение
Файлами последовательного типа являются такие файлы, в которых поиск необходимой информации может осуществляться только путём последовательного считывания элементов файла, начиная с начала файла, а запись новых элементов возможна только в конец файла. При этом из файла можно только или считывать информацию, или только её записывать.
В файлах последовательного типа нет такого понятия как номер элемента файла. По этой причине при работе с последовательным типом файлов могут быть использованы все операции и функции, которые определены для файлов прямого доступа, исключая процедуры установки на элемент файла seek, функций, связанных с определением номера и числа элементов filesize и filepos, процедуры усечения файла truncate.
Правила и порядок работы с файлами последовательного типа
В файлах последовательного типа записи располагаются в порядке их поступления. Последней будет являться запись конец файла. На магнитных лентах такой записью служила ленточная марка (ТМ), а на дисках такой записью является запись с нулевой длиной данных. Когда во время исполнения оператора READ считывается такая, то это воспринимается как конец файла. Записи в файле могут обладать фиксированной (F), переменной (V) или неопределенной (U) длиной. К последовательным файлам должен применяться последовательный порядок доступа. Но когда файлы содержат записи фиксированной длины, то возможно использование также и прямого доступа.
Журналом считается последовательный файл с записями переменной длины, в котором копию каждой страницы сопровождают следующие записи:
- Запись имени файла базы данных.
- Запись имени задания.
- Запись даты ГГММДД и времени ЧЧММСС вывода копии в журнал.
Каталог является последовательным файлом данных, который предназначен для занесения в него информации о файлах данных. Когда в каталоге приведена информация о файле данных, то такой файл данных именуется каталогизированным. В каталог должны заноситься файлы, которые расположены на дисках, а также тута заносятся имя файла данных и все его главные характеристики.
Когда данные последовательного файла пересылаются при помощи операторов ввода и вывода без формата, то логические записи, которые составляют файл, могут передаваться без каких-либо ограничений. Если при вводе какой-нибудь записи её размер, который определяется списком вывода, больше физического размера записи данного носителя, то логическая запись в автоматическом режиме разбивается на набор физических записей. Это означает, что текущая запись файла при бесформатном обмене может иметь произвольную длину.
При реализации обработки последовательных файлов, как правило, необходимо, чтобы записи файлов были упорядоченными по одному или набору полей. Если упорядоченность нарушена, то возможно получение неверных результатов. В языке программирования RPG (Report Program Generator) есть средства только для проверки записей файла на упорядоченность. Осуществлять саму сортировку записей в этом языке нельзя. Сортировка последовательных файлов может быть осуществлена при помощи системных программ сортировки до реализации обработки этих файлов программой на RPG.
При сортировке последовательного файла на дисках при помощи программы сортировки на дисках можно указать специальный операнд ADDROUT, позволяющий получить вместо рассортированного файла записей файл адресов.
При формировании последовательных файлов следует стремиться сокращать избыточность данных. Один из методов, позволяющих экономить место на носителях, заключается в том, что промежуточные файлы, сформированные после контроля и редактирования, должны размещаться на рабочих носителях, высвобождаются для других работ после выполнения операции. Другой метод состоит в объединении нескольких операций в одной программе, которая выполняет за один просмотр файла несколько функций. Критерием качества технологии обработки данных может считаться её стоимость при заданном цикле создания или корректировки.
К записям последовательного файла возможен только последовательный доступ, в том порядке, в котором они размещены в файле. Хотя, как правило, имеются ограниченные средства для продвижения указателя текущей записи вперед и назад. Если необходим произвольный доступ к записям, то требуется другая организация файла.
Доступ к последовательному файлу может быть лишь последовательным. Доступ к прямому, относительному и индексно-последовательному файлам может быть как последовательным, так и произвольным.
ВХФАЙЛ — это последовательный файл, который содержит один или несколько объектных модулей. БИБПРОГ — это определённый файл с индексной или библиотечной методикой доступа, в которой объектные модули сохраняются раздельно. Каждая запись СВИМ может содержать некоторое символическое имя, его тип (имя модуля, имя входа или ссылка на внешнее имя) и относительное смещение внутри модуля. Первая запись ТКСТ должна содержать размер объектного модуля. Все последующие записи содержат размер объектного кода и поле, которое указывает его длину в этой записи. Адресным константам, которые указывают на области внутри модуля, соответствует запись СВИМ для имени входа. Адресным константам, которые указывают на другие модули, должны соответствовать записи СВИМ для ссылок на внешние имена других модулей.
При этом следует помнить, что последовательные файлы являются обычно текстовыми файлами, а именно, наборами строк с ASCII символами.
Индексно-последовательным файлом является последовательный файл, который снабжён индексами, хранящими информацию о расположении записей на диске. Все записи файла содержат ключ и при создании файла записи должны располагаться в последовательности ключей.