ДОСТУП К ФАЙЛАМ

РАБОТА С ФАЙЛАМИ. ФАЙЛОВЫЙ ТИП

. . .

 

 

Под файлом понимается либо именованная область внешней памяти ПК (жесткого диска, гибкой дискеты, электронного "виртуального" диска), либо логическое устройство - потенциальный источник или приемник информации.

По содержанию, под файлом понимают любой набор элементов одного и того же типа. Число элементов, называемое длиной файла, не фиксировано. В этом основное отличие файла от массива. Файл, не содержащий ни одного элемента, называется пустым: его длина равна нулю.

Файлы по методу доступа к их элементам подразделяются на файлы последовательного и прямого доступа. В стандартном языке Паскаль определены файлы только последовательного доступа, в которых каждый элемент становится доступным только после перебора всех предыдущих элементов.

В Турбо Паскале можно работать и с файлами прямого доступа, которые позволяют обращаться к каждому элементу непосредственно по его порядковому номеру в файле.

Файлы должны быть описаны в разделе описаний программы. Описание файлов имеет следующий вид:

var

имя_файла : file of базовый_тип;

 

В качестве базового типа элементов файла можно использовать любой тип данных (как простой, так и сложный) за исключением типа file.

Вообще говоря, файловый тип или переменную файлового типа можно задать одним из трех способов:

<имя> = file of <тип>;

<имя> = TEXT;

<имя> = File;

 

В зависимости от способа объявления можно выделить три вида файлов:

1) типизированные файлы (задаются предложением FILE OF ...);

2) текстовые файлы (определяются типом TEXT);

3) не типизированные файлы (определяются типом FILE).

 

 

Файлы, а также логические устройства становятся доступны программе только после выполнения особой процедуры открытия файла (логического устройства). Эта процедура заключается в связи заранее объявленной файловой переменной (для ее включения в работу программы) с именем существующего или вновь создаваемого файла (на физическом или логическом устройстве), а также в указании направления обмена информацией: чтение из файла или запись в него.

Файловая переменная связывается с именем файла в результате обращения к стандартной процедуре ASSIGN (назначить):

Assign(<файловая переменная>, <имя файла или логического устройства>);

Здесь <ф. п.> - файловая перемененная (правильный идентификатор, объявлен­ный в программе как переменная файлового типа);

<имя файла или л.у.> - текстовое выражение, содержащее имя файла или логическое устройство.

Доступ к элементам файла осуществляется через указатель файла (буферная переменная). При чтении или записи этот указатель перемещается к следующему элементу и делает его доступным для обработки. В каждый момент доступен для записи (чтения) только тот файл, на который установлен указатель.

Так как, по определению, число элементов файла не задается, то в Турбо Паскале для нахождения конца файла введена стандартная функция

eof(var f : file) : boolean;

Когда достигли конца файла, eof принимает значение True, в противном случае - False.