Множества значений или переменных с одним общим именем называются структурированными (составными) типами. Имеется несколько способов построения составных типов, каждый из которых отличается способом обращения к отдельным компонентам и, следовательно, способом обозначения компонентов, входящих в данные структурированных типов.
По способу организации и типу компонентов выделяют четыре основные разновидности структурированных типов:
· регулярный тип (массивы);
· комбинированный тип (записи);
· файловый тип (файлы);
· множественный тип (множества).
Использование структурированных типов данных позволяет решать разнообразные и достаточно сложные задачи.
В задачах, которые мы рассматривали, данные поступали с клавиатуры, а результаты выводились на экран дисплея. Поэтому ни исходные данные, ни результаты не сохранялись. Всякий раз при выполнении одной и той же программы, особенно во время ее отладки, приходилось заново вводить исходные данные. А если их очень много? Тогда удобно оформить исходные данные и результаты в виде файлов, которые можно хранить на диске точно так же, как и программы.
Файл − это область памяти на внешнем носителе, в которой хранится некоторая информация. В него можно поместить данные или извлечь их оттуда. Файл в таком понимании называют физическим файлом, т.е. существующим физически на некотором материальном носителе информации.
С другой стороны, файл − это одна из многих структур в программировании. Файл в таком понимании называют логическим файлом, т.е. существующим только в нашем логическом представлении при написании программы.
Структура физического файла представляет собой простую последовательность байт носителя информации.
Структура логического файла − это способ восприятия файла в программе. Образно говоря, это "шаблон" ("окно"), через который мы смотрим на физическую структуру файла. В Паскале таким "шаблонам" соответствуют типы данных, допустимые в качестве компонент файлов.
В языке Паскаль файл представляет собой последовательность элементов одного типа. Мы будем работать только с т.н. файлами последовательного доступа. В таких файлах, чтобы получить доступ к элементу, необходимо последовательно просмотреть все предыдущие.
Файл последовательного доступа можно сравнить с магнитной лентой, на которой записаны песни. Для того чтобы найти конкретную песню, надо перемотать кассету на начало и прослушивать песню за песней до тех пор, пока не будет найдена нужная.
Зачем нужны файлы? Объем информации, которую можно сохранить в файле, очень велик. Он значительно больше, чем объем, который можно хранить в оперативной памяти, например, при использовании массивов.
Файлы классифицируются по двум признакам:
По методу доступа − последовательный, прямой доступ.
По типу (логической структуре) − типизированные, текстовые, нетипизированные.
Объявление файловой переменной в разделе описания переменных имеет вид:
Var <имя файла>: File Of
<тип элементов;>
Например,
Var Ft: File Of Integer;
{файл, элементами которого являются целые числа}
М: File Of Char;
{файл, элементами которого являются символы}
Type File_Integer=File Of Integer;
File_Char=File Of Char;
Var F1: File_Integer;
F2: File_Char;
Так как в описании указывается тип элементов, такие файлы называются типизированными. Все элементы файла пронумерованы, начиная с нуля.
С каждым файлом связан так называемый файловый указатель. Это неявно описанная переменная, которая указывает на некоторый элемент файла.
(0) (1) … (k) (k+1) …
файловый указатель
Все операции производятся с элементом, который определен файловым указателем.