Технологии программирования
Шрифт:
Структура файлов создается одновременно с выявлением оперативных структур данных и с разработки процедур записи информации в файл и считывания информации из файла. Описание файлов обычно начинается с указания назначения, полного имени файла, атрибутов, диспозиции, организации и вида доступа. В документальном описании организации файлов стандартной организации достаточно упомянуть тип этого файла. Например, файл типа текстовый в кодировке MS DOS. При необходимости можно дополнительно описать порядок смысловых строк теста.
Документирование порядка следования информации в файлах, состоящих из сблокированных записей фиксированной длины и с большим количеством полей, а также документирование сложных нетипизированных файлов обычно выполняют тремя способами.
Согласно
По второму способу, порядок размещения информации в файле определяется комментированными описаниями оперативной структуры данных на языках программирования, из которых осуществляется запись информации в файл и в которые предполагается считывание информации из файла.
Согласно третьему способу описание выполненное по второму способу, дополняется текстами процедур "чтения/записи" файла.
Практика показала, что использование документации файлов, составленной сторонними фирмами по второму и особенно по третьему способу не вызывало затруднений.
"Чтение/запись" файлов со сложной произвольной организацией, как правило, производится последовательными порциями. Первая порция считывается в статическую запись оперативной памяти. Эту запись называют заголовочной (header). Она содержит один или несколько байтов идентификации, которые необходимы для проверки подлинности файла (его принадлежности к конкретным программам). В заголовочной информации может быть указана версия файла. Считывание последующих порций осуществляется как в статические, так и в динамические связные переменные, причем их длина может определяться информацией, полученной как из заголовочной порции, так и из ряда предшествующих порций.
Рассмотрим пример документирования файла представленной ранее электронной таблицы при помощи таблиц структуры файла. При этом алгоритмы процедур записи информации в файл и считывания информации из файла проектировались одновременно с оперативными структурами электронной таблицы.
При разработке структуры файла были добавлены следующие глобальные описания:
Локальные описания:
Файл хранения электронной таблицы является файлом постоянного хранения, бинарным произвольной длины; имеет имя, определенное пользователем, но с расширением имени "MSS".
Организация заголовочной части файла электронной таблицы представлена в табл. 4.1.
Таблица 4.1
Заголовочная часть файла электронной таблицы
Оперативная информация | Длина оперативной информации, байт | Комментарий |
FILEIDENT | Length (FILEIDENT) | Константа строки идентификации |
EndofFile | SizeOf (EndOfFile) | Признак конца текстового файла |
LastCol | SizeOf (LastCol) | Последняя заполненная колонка таблицы |
LastRow | Sizeof (LastRow) | Последняя заполненная строка таблицы |
Count | Sizeof (Count) | Число заполненных клеток таблицы на участке таблицы (1, 1, LastCol, LastRow) |
ColWidth | Sizeof (ColWidth[1] * MAXCOLS) | Вектор ширин колонок таблицы от 1 до MAXCOLS |
Запись в файл EndOfFile со значением 2610 = 1A16 (Ctrl + Z) обеспечивает вывод на экран только строки идентификации при просмотре файла с помощью большинства программ просмотра текстовых файлов.
При чтении файла электронной таблицы считанная информация первой текстовой строки файла проверяется на совпадение с FILEIDENT.
Информация о заполнении таблицы характеризует участок таблицы (1, 1, LastCol, LastRow), в пределах которого пользователь внес изменения информации таблицы.
Значение Count при записи рассчитывается с использованием двух вложенных циклов, задающих номера всех клеток на участке таблицы (1, 1, LastCol, LastRow). В циклах значение Count увеличивается на единицу, если значение указателя на информацию клетки ≠ Nil.
В таблице 4.2 приведена организация информации очередной непустой клетки файла электронной таблицы.
Таблица 4.2
Информация очередной непустой клетки файла электронной таблицы
Оперативная информация | Длина оперативной информации, байт | Комментарий |
Col | SizeOf (Col) | Номер колонки клетки |
Row | SizeOf (Row) | Номер строки клетки |
Cells [Col, Row].CellFormat | Sizeof (Word) | Формат клетки |
Size | Sizeof (Size) | Длина информации клетки |
Фактическая информация клетки | Size | Информация клетки |
Значение Col, Row определяют сохраняемые или сохраненные в файле координаты каждой непустой клетки. Фрагмент кода программы сохранения информации непустой клетки таблицы приведен ниже:
ВЫВОДЫ
• Под структурой данных программы понимают множество элементов данных, связей между ними, а также характер их организованности. Структуры данных и алгоритмы служат основой построения программ.