ВУЗ:
Составители:
Рубрика:
5
1 Файлы
Файл – это именованная область на диске, предназначенная для хранения
информации. Основным достоинством файлов является возможность хранить
данные между запусками программы. Кроме того, количество информации в фай-
ле может быть значительным, превышая объем оперативной памяти. Файлы под-
разделяются по двум признакам: по типу элементов и по способу доступа.
По типу элементов различают
текстовые и двоичные (бинарные) файлы.
Текстовые файлы предназначены для хранения текста и состоят из строк разной
длины, разделяемых специальными невидимыми символами перехода на новую
строку. В операционной системе Windows разделителем строк в текстовых файлах
служит пара символов с кодами 13 и 10, идущих подряд. В системах Unix и Linux
разделителем строк является символ с кодом 10.
Будем называть эти символы
маркером конца строки и обозначать EOLN (от англ. End Of Line). Двоичные
файлы предназначены для хранения произвольной информации. В языке Паскаль
существует две разновидности двоичных файлов – типизированные и бестипо-
вые. Типизированные файлы состоят из элементов одного типа, что позволяет ра-
ботать с ними как с массивами, обращаясь к элементам по индексу
. Бестиповые
файлы предназначены для низкоуровневой работы с файлами, и в данной книге
рассматриваться не будут.
По способу доступа различают файлы с последовательным и произвольным
доступом. В файлах с последовательным доступом мы имеем доступ только к те-
кущему элементу. При совершении операции чтения или записи осуществляется
переход к следующему элементу. Таким
образом, нельзя получить доступ к эле-
менту, не обратившись к предыдущим. Последовательный доступ отражает тот
факт, что на диске данные файла хранятся последовательно и при обращении к
ним головка жесткого диска обычно считывает или записывает порцию последо-
вательно идущих данных. Заметим, что текстовые файлы имеют только последо-
вательный доступ, поскольку их
элементами являются строки, имеющие, вообще
говоря, разную длину. В файлах с произвольным доступом данные считаются
принадлежащими к одному типу, элементы которого имеют одинаковый размер.
Поэтому мы можем обратиться к произвольному элементу по его номеру (как в
массиве). Так, двоичные файлы в языке Паскаль имеют произвольный доступ.
Перед началом работы с
файлом его требуется открыть, а по окончании рабо-
ты – закрыть. Если по окончании работы программы файл не закрыт, то часть за-
писываемых в него данных может быть потеряна. С каждым открытым файлом
связан так называемый файловый указатель – текущая позиция в файле, в кото-
рой будут производиться операции чтения/записи. При открытии
файла файловый
указатель обычно устанавливается на начало файла, а при каждой операции чте-
ния/записи автоматически продвигается вперед на размер считанных/записанных
данных.