Файловый тип и файловые переменные

 

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

 

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

< имя > = Text;

< имя > = File;

 

где < имя > – имя файлового типа (правильный идентификатор); File, of – зарезервированные слова (файл, из); Text – имя стандартного типа текстовых файлов; < тип > – любой тип Турбо Паскаля, кроме файлов (рис. 1).

 

Рис. 1. Синтаксическая диаграмма описания файлового типа

 

Турбо Паскаль поддерживает три файловых типа:

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

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

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

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

Текстовые файлы – это файлы, состоящие из кодов ASCII, включая расширенные и управляющие коды. Текстовые файлы организуются по строкам и обязательно содержат специальный код, называемый концом файла. Любую информацию (числовую, символьную или строчную) текстовый файл хранит в виде символов, ее изображающих. Например, текст программы на Паскале – это текстовый файл. Его можно вывести на экран командой MS–DOS Type или напечатать командой Print и прочитать.

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

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

Пример объявления переменных файлового типа:

 

Type Sklad = Record

Name : String [30];

Num : String [10];

Count : Integer;

Date : String [10];

End;

Var f1 : File Of Sklad; f2 : Text; f3 : File; f4 : File Of Integer;

 

В данном примере описаны четыре файловые переменные: f1, f2, f3, f4. f1 и f4 – типизированные файлы. f2 – текстовый файл. f3 – нетипизированный файл.

Любая программа на Паскале может использовать две стандартные файловые переменные – input (для чтения данных с клавиатуры) и output (для вывода данных на экран). В версиях Паскаля ниже 5.0 требовалось указать эти переменные в заголовке программы.