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