У понятия файл есть две стороны. С одной стороны, файл – это область памяти на внешнем носителе, в котором хранится некоторая информация. Файл в таком понимании называют физическим файлом, т.е. существующим физически на некотором материальном носителе информации. С другой стороны, файл - это одна из структур данных, используемых в программировании. Файл в таком понимании называют логическим файлом, т.е. существующим в нашем логическом представлении при написании программы.
Структура физического файла представляет собой простую последовательность байт памяти носителя информации. Структура логического файла – это способ восприятия файла в программе.
Любой файл имеет следующие характеристики-требования:
– у него есть имя (набор из восьми, допустимых для имени файла, символов плюс расширение, указываемое после точки в имени файла состоящее из трех символов);
– он должен содержать данные одного типа (любой тип Турбо Паскаля, кроме типа Файл, то есть не существует типа «Файл файлов»);
Длина создаваемого файла никак не регламентируется при создании файла и ограничивается только емкостью носителя информации.
Работа с файлами в Турбо Паскале осуществляется следующим образом: сначала объявляется переменная файлового типа, с указанием свойств переменной (то есть типом содержимого), затем данная файловая переменная связывается («ассигнуется») с именованным дисковым пространством (то есть непосредственно с конкретным файлом, содержащим или, который будет содержать данные того же типа, что и связываемая переменная-файл) или логическим устройством)
Переменная файлового типа может быть объявлена одной из следующих строк:
<имя> = file of<тип>;
<имя> = text;
<имя> = file;
где <имя> – имя переменной-файла;
file of – зарезервированные слова (файл, из);
text – имя стандартного типа текстовых файлов;
<тип> – имя любого стандартного типа Турбо Паскаля, кроме типа файл.
Например файл, содержащий список учеников и их возраст:
Type
pupil = record
surname : string;
name : string;
age : word
end;
Var
journal : file ofpupil;
В зависимости от способа объявления можно выделить три вида файлов:
Файловые переменные имеют специфическое назначение. Такие операции, как присвоение значения, сравнение и т.д. над переменными типа файл осуществлять нельзя.
Текстовые файлы – это файлы, содержащие символы, разделенные на строки. Причем в конце каждой строки стоит признак конца строки. Текстовые файлы не имеют прямого доступа. При чтении и записи числа преобразуются автоматически. К ним применима процедура Append(<имя переменной текстового файла>). Она открывает текущий файл, с которым связана данная переменная, текущий указатель помещает в конец для добавления новой информации.
Нетипизированные файлы предназначены для низкоуровневой работы с файлами. С их помощью можно обратиться к файлу любого типа и логической структуры. За одно обращение считывается/записывается число байт, приблизительно равное величине буфера ввода/вывода. В качестве буфера может выступать любая переменная. Для записи и чтения используются процедуры BlockRead, BlockWrite.