Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава10 задание.doc
Скачиваний:
2
Добавлен:
29.08.2019
Размер:
108.03 Кб
Скачать

111

10. Файлы

    1. Введение

Практические все рассмотренные ранее средства языка программирования Паскаль не зависят от того, на компьютере какой архитектуры и в среде какой операционной системы будет выполняться программа. Несколько иначе обстоит дело в отношении операций ввода и вывода на внешние устройства. Указанные операции по-разному выполняются на компьютерах различающихся архитектур и под управлением разных операционных систем. Чтобы освободить программиста от необходимости детального учета указанных особенностей, и введено понятие файла. А в набор средств языка программирования введен ряд подпрограмм работы с файлами, имена и функциональное назначение которых в нем стандартизованы, и, следовательно, не зависят ни от архитектуры компьютера, ни от типа операционной системы.

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

Примечание. В данном пособии указанные действия будут выполняться по правилам операционной системы MS DOS.

Итак, с одной стороны, файл – это именованная область внешней памяти, содержащая какую-либо информацию. В таком понимании это – физический файл, то есть существующий физически на некотором материальном носителе информации и доступный из программы с одного из внешних устройств компьютера: магнитного или оптического дисковода, клавиатуры, модема и ряда других.

С другой стороны, файл – это одна из многих структур данных, используемых в программировании. В таком понимании речь идет о логическом файле, то есть существующим только в нашем логическом представлении с позиций программы. В программе файл представляется файловой переменной определенного типа.

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

байт

байт

байт

. . .

. . .

байт

байт

Структура логического файла – это способ восприятия файла в программе. В этом смысле файл рассматривается как последовательность элементов определенного для него типа данных. Элементом файла может быть один или несколько байтов, целое или вещественное число, массив чисел, запись, символ или строка текста и другие, Ниже приведены примеры, иллюстрирующие сказанное.

file of byte (файл, состоящий из байтов)

байт

байт

байт

. . .

. . .

байт

Eof

file of integer (файл, состоящий из чисел типа во внутримашинных кодах)

целое со знаком

целое со знаком

. . .

. . .

целое со знаком

Eof

file of T, (файл, состоящий из записей типа Т)

где T = record

a : byte;

b : char;

c : integer;

end;

первый элемент

. . .

последний элемент

байт

код символа

целое со знаком

. . .

байт

код символа

целое со знаком

Eof

Примечание. Последний элемент файла, Eof (от слов End of file), обозначает физический конец файла, за которым нет ни одного элемента, принадлежащего ему. В старых версиях MS DOS для обозначения физического конца файла использовался специальный однобайтовый код. В последних версиях конец файла никак не кодируется, а файловая система своими средствами определяет, когда достигнут конец файла.

Логическая структура файла очень похожа на структуру массива. Различия между массивом и файлом заключается в следующем:

  • У массива количество элементов фиксируется в момент распределения памяти, и он целиком размещается в оперативной памяти. Нумерация элементов массива выполняется согласно нижней и верхней границам для индексов, указанным при его объявлении.

  • Файл располагается на внешнем носителе информации. Количество элементов файла не фиксировано. В процессе работы программы оно может изменяться и в каждый момент времени не известно. Зато, как уже упоминалось выше, известно, что в конце файла располагается специальный символ конца файла Eof. А определить длину файла и выполнить другие часто необходимые операции с ним с помощью стандартных процедур и функций, предназначенных для работы с файлами. Нумерация элементов файла выполняется слева направо, начиная с нуля (исключая текстовые файлы).

В любой момент из программы файл «виден» не целиком, виден только один его логический элемент (байт, целое число в машинной форме, запись и т.п.). В этом контексте можно говорить о том, что из программы в любой момент времени «файл виден через логическое окно», ширина которого точно равна размеру одного элемента файла. Отметим также, что в литературе часто вместо термина «элемент файла» употребляется также термин «запись», смысл которого не обязательно совпадает с термином record.