Ответы на экзаменационные вопросы № 1-34 по дисциплине "Программирование" (Средства модульного программирования в системе Турбо-Паскаль. ООП. Объекты в динамической памяти), страница 10

 ft = text;    ff = file;   Данный пример демонстрирует наличие трех видов файлов, которыми оперирует Turbo Pascal. Речь идет (по порядку) о типизированных, текстовых и нетипизированных файлах.  file и of – зарезервированные слова  

text – идентификатор стандартного типа данных (такого, как, например, integer или real);  

<базовый тип элементов в файле> – любой тип, кроме файлового.  

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

var  

f1 : file;  

f2 : text;  

f3 : file of integer;  

f4 : file of mass.  

Среди объявленных файловых переменных f1 – это нетипизированный файл, f2 – текстовый, a f3, f4 – типизированные файлы. Причем если среди типизированных файлов элементы файла f3 относятся к стандартному типу (integer), то элементы файла f4 – к типу, объявленному пользователем (тип mass представляет собой массив целых чисел).  

Файлы различных видов имеют нечто общее:     в файле в каждый момент может быть доступен только один элемент. Например, в файле f3 можно иметь доступ к одному из целых чисел, из которых состоит файл; в файле f4 – к единственному массиву;      файлы всех видов завершаются маркером конца файла (EoF – End of File).             

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

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

Попробуем представить себе все это наглядно. Информация на диске записывается на дорожках, располагающихся по концентрическим окружностям. Поэтому логично представить файл в виде части дорожки – сектора. Здесь изображен файл, содержащий пять элементов. Начинается файл идентификатором, который обозначен буквой f. Далее следуют несколько элементов, и завершается файл маркером конца файла (EoF). Элементы, образующие файл, представляют собой значения, принадлежащие любому простому или структурированному типу, за исключением файлового. Чтобы подчеркнуть, что длина файла не ограничена, изображенный здесь сектор справа не замкнут.            

Стрелка на рисунке представляет собой указатель текущей позиции файла (указатель считывания). Для чего необходим указатель текущей позиции? Если инициировать запись в файл или считывание из файла, запись будет проводиться, начиная с элемента, перед которым расположен указатель текущей позиции. Это же касается и считывания.      

Разумеется, данное визуальное представление файла очень условно. Часто файл занимает не часть дорожки, а несколько дорожек. Кроме того, никакой стрелки в реальности не существует. Это визуальное представление файла (вернее, его вариации) мы будем использовать в дальнейшем при изучении различных операций над файлами.  

2. Операции над файлами.  

В отличие от других типов данных, в Turbo Pascal нет встроенных операторов, предназначенных для манипулирования файлами. Например, не удастся с помощью оператора присваивания присвоить файловой переменной некоторое значение. В силу этого соответствующие операции реализованы в виде процедур и функций.          

Файловые процедуры и функции условно можно разделить на пять групп:  

организующие доступ к файлам;   осуществляющие ввод/вывод;        предназначенные для ориентирования в файле;             специальные операции;      завершающие операции.    

2.1. Подготовка файлов к работе.  

2.1.1. Организация доступа к файлам.