Вход/Регистрация
Технологии программирования
вернуться

Костерин В В

Шрифт:

Помимо описанного в гл. 1 рефакторинга имен можно производить рефакторинг структуры данных программы. При рефакторинге структуры данных вместо нескольких самостоятельных массивов возможно использование таблицы и т. д. Особое внимание при рефакторинге следует уделять комментированию логической структуры данных.

4.6. ФАЙЛОВЫЕ СТРУКТУРЫ

4.6.1. Физическая организация файлов

Файл — упорядоченный набор информации на внешнем носителе (наиболее часто на дисковом носителе).

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

Обычно файловая система операционной системы компьютера содержит следующие средства:

• управление файлами: хранение файлов, обращение к ним, их коллективное использование и защита;

• обеспечение целостности файлов — гарантирование того, что файл содержит только то, что требовалось;

• средства управления внешней памятью (распределяют внешнюю память для размещения файлов).

В случае диска большого объема на нем могут находиться много тысяч файлов. Если группировать всю информацию о местонахождении файлов и дескрипторы файлов в одном месте, то поиск конкретного файла будет занимать слишком много времени. В этом случае выгодно использовать многоуровневые каталоги файлов и системное имя файла формировать с именем пути от корневой папки (корневой директории) к данному файлу (как в UNIX, MS DOS, MS Windows) или от текущей папки (текущей директории), в котором находится файл исполняемой программы.

Дескриптор файла или блок управления файлом может включать следующую информацию:

1) строковое имя файла;

2) тип файла (расширение имени) — информация для пользователя о предполагаемой информации в файле;

3) размещение файла во внешней памяти;

4) тип организации файла (прямой, последовательный, индексно-последовательный и т. д.);

5) тип устройства (несъемный, съемный, допускающий только чтение и т. д.);

6) данные (атрибуты) для контроля доступа (владелец, групповой пользователь, допущенный и общедоступный пользователи);

7) диспозицию (файл постоянный или временный);

8) дату и время создания;

9) дату и время последней модификации.

Элементы перечисления 1, 2 и 3 определяют полное имя файла.

При ставшей традиционной несвязной физической организации файл может занимать несколько разнесенных участков внешней физической памяти. В случае распределения при помощи списков секторов (блоков) секторы, принадлежащие одному файлу, содержат ссылки-указатели друг на друга. Все свободные секторы диска содержатся в списке свободного пространства. Удлинение или укорочение файла изменяет лишь список свободных секторов. Однако логическая выборка смежных значений может требовать длительных подводок головок дисковода. Хранение ссылок уменьшает объем памяти.

Наиболее общими операциями работы с файлами являются следующие операции:

• связывание полного имени файла с файловыми переменными;

• открытие файла (например, для записи, только чтения, изменения длины);

• закрытие файлов;

• установление атрибутов файла.

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

Операция установления атрибутов файла позволяет изменять атрибуты файла, например, устанавливать, что файл может использоваться только для чтения и т. д.

4.6.2. Логическая организация файлов

Рассмотрим возможности логической организации файлов, предоставляемых Turbo Pascal.

Операторы языка Read, ReadLn, Write, WriteLn (при файловой переменной типа Text) обеспечивают работу с файлами единственного типизированного в языке Pascal вида — текстовыми файлами, представляющими собой на логическом уровне последовательность текстовых строк. Сами текстовые файлы на логическом уровне имеют последовательную организацию. Например, чтобы прочитать сотую строку, необходимо до этого прочитать все 99 предшествующие строки. Для текстового файла в языке Turbo Pascal имеется процедура "Append" добавления текстовой информации в конец текстового файла. Процедура "Append" полностью характеризует возможность изменчивости текстовых файлов (в текстовых файлах даже нельзя заменить содержимое одной строки на другую строку).

Операторами языка Read, Write (файловая переменная имеет тип File of тип_записи) также можно последовательно записывать в файл или считывать из файла в той же последовательности одну или несколько записей строго определенного типа (фиксированной длины). Такие файлы называют типизированными или файлами в виде сблокированных записей фиксированной длины. Если записей в типизированных файлах несколько, то при помощи операции "Seek" можно задать любой номер последующей изменяемой или считываемой записи. Таким образом, реализованы методы как последовательного, так и прямого доступа к информации файла, что одновременно образует комбинированный доступ.

  • Читать дальше
  • 1
  • ...
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: