Конспект лекций по информатике для специальностей 2102, 2103 Автор доц., к т. н. Каширская Е. Н

Вид материалаКонспект

Содержание


11.4. Описание файлового типа
11.5. Файловая переменная
Подобный материал:
1   ...   17   18   19   20   21   22   23   24   25

11.4. Описание файлового типа


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

имя = file of тип;

имя = text;

имя = file;

Пример: Var finp: text;

Fout: file of string;

const name = ‘c:\dir\subdir\out.txt;

…………………………

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

Общий вид описания файлового типа:

Type имя = File of тип;

Число компонентов в определении файлового типа в отличие от массива не фиксируется. Тип компонентов файла может быть любым, кроме файлового.

Пример:

Type Number = file of integer; {файл целых чисел}

Symb = file of ‘A’..’Z’; {файл прописных латинских букв}

Стандартный тип Text определяет тип–файл, содержащий символы, объединённые в строки. Следует иметь в виду, что тип Text в Турбо-Паскале не эквивалентен типу file of char.

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

Пример: Type untyp = file;

Итак, в Паскале файловый тип описывается следующим образом:

type T = TValue;{ тип компоненты файла }

< имя файлового типа > = file of T;

Как обычно, файловый тип может быть введен в употребление в разделе типов, как было описано выше, либо непосредственно задан при описании переменных, например: var myfile: file of T;

Файлы, имена которых включаются в список заголовка программы, называются внешними файлами, они существуют вне программы. Если же имена файлов не внесены в список заголовка программы, то такие файлы существуют только во время выполнения программы и называются внутренними. Внутренние файлы носят в основном вспомогательный характер. Стандартный ввод осуществляется из файла input, а вывод в файл output.

11.5. Файловая переменная


Каждому файлу ставится в соответствие уникальная файловая переменная. Кроме того, обычными программными средствами нельзя создать программы, позволяющие взаимодействовать с устройствами ввода-вывода, кроме терминалов пользователя. Своеобразным «окном» между программами и внешними устройствами является файловая переменная. Поэтому в каждой программе, где предусматривается взаимодействие с устройствами ввода-вывода, организуется определённым образом логическая связь устройства ввода-вывода с файловой переменной.

Пример:

Type ZAP = Record

FIO: array [1..10] of char;

God: Integer

end; { of Record }

F = File of ZAP;

Тогда любая переменная типа F – это последовательный файл, состоящий из записей. Каждая запись имеет 2 поля: FIO (фамилия) и God (год рождения).

Переменные файлового типа, как и обычные переменные, описываются в разделе переменных: Var C: F;

С переменной С автоматически связана некоторая буферная переменная, относящаяся к типу компонентов файла и представляющая собой своеобразное «окно», через которое можно просматривать или записывать очередные компоненты. В любой момент доступен только один компонент файла – тот, что виден через буферную переменную.

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

Описание файла в разделе описания переменных:

Var Myfile: File of Integer;

Это означает, что в прграмме под файловым именем Myfile понимается неопределённое количество целых чисел, которые в виде физического файла могут располагаться на некотором внешнем уровне.

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

Если программа взаимодействует с внешними файлами (хранимыми на диске), то файлы должны быть описаны в программе либо явно в разделе переменных Var, либо с использованием раздела типов Type.

Var имя файла: File of базовый тип

Пример: Var FT: File of char; (* файл символьных данных *)

Finp: File of real; (* файл действительных данных *)

М: File of integer; (* файл целых данных * )

Файлы символьных данных называются текстовыми файлами.

Определение данных с использованием раздела описания типов Type делает программу более универсальной и упрощает отладку программы.

Type имя типа = File of базовый тип;

Var имя переменной: имя типа;

Пример: Type T = File of Char;

Var FT: T;

Здесь Т – введённое нами имя типа.

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

Type SS = file of Char;

Person = record

name: string [20];

adress: string [25];

sex: ( man, woman );

day: 1..31;

month: 1..12;

year: 1900..2000

end;

Var F1, F2: SS;

Table: file of string [50];

Base: file of person;

Data: file of integer;

Файловые переменные имеют специфическое применение. Над ними нельзя выполнять никакие операции (присваивать значение, сравнивать и т.д.). Их можно использовать лишь для выполнения операций с файлами (чтения, записи, удаления файла и т.д.). Кроме того, через файловую переменную можно получить информацию о конкретном файле (тип, параметры, имя файла и т.д.).