В ТР допускается использование типизированных констант, которые описываются в разделе описания констант.
Const
<имя констант>:<тип констант>=<значение>;
Типизированным константам можно присвоить другие значения в процессе работы программы и фактически они являются переменными с указанным начальным значением. Указанное в описании начальное значение константа принимает только один раз. В момент начала работы программы.
Типизированные константы могут быть любого типа, кроме файлов. Типизированную константу нельзя использовать в качестве значения при объявлении других констант или границ типа диапазона.
Файлы
Файл с точки зрения программирования – это структурированный тип данных, где элементы имеют один тип и одну длину, и хранятся на внешнем носителе. Размерность файла ограничена только свободным пространством диска. Файлы бывают типизированные и не типизированные. В программе конкретный файл, находящийся на диске, представляет файловая переменная, которая описывается следующим образом:
var
<файловая переменная>: file;
< файловая переменная >: file of <тип элементов>;
< файловая переменная >: text;
Пример:
var
f1: file;
f2: file of integer;
f3: text;
Над файловой переменной в программе нельзя выполнять никаких действий, она не может присутствовать в выражениях. Файл можно представить как последовательную цепочку элементов, пронумерованных от нуля и заканчивающуюся специальным кодом, называемым маркером конца файла.
Количество элементов, хранящихся в данный момент в файле, называется текущей длиной файла. Для доступа к элементам файла используют специальную величину, которая называется указателем файла. Указатель файла – это специальная ячейка памяти, которая хранит адрес элемента файла, предназначенного для текущей обработки. Указатель файла в программе явно не указывается.
Любые файлы могут быть доступны программе только после выполнения специальной процедуры открытия файла. Эта процедура связывает раннее объявленную файловую переменную с именем файла на диске.
Это связывание осуществляется с помощью встроенной процедуры.
Assign (<файловая переменная>; <имя файла на диске>:string);
Assign (f2, ‘c:\ студенты \ гр 248. dat’);
Файл открыть можно только по чтению или только по записи. Чтобы открыть файл для записи используют процедуру Rewrite с параметром файловой переменной.
Rewrite (f2);
Данная процедура создает новый файл с указанным именем и если файл с указанным именем уже существует, то информация теряется без предупреждения, указатель восставляется на первый элемент с номером ноль.
Чтобы открыть файл для чтения используют процедуру Reset с параметром файловой переменной.
Пример:
Reset (f2);
Указатель файла восставляется на первый элемент и открыть для чтения можно только уже существующий файл. В противном случае выдается ошибка и программа завершает работу аварийно.
Записать информацию в файл можно следующим образом:
После выполнения всех работ над данными файла файл необходимо закрыть, в противном случае вся информация теряется. Закрыть файл можно с помощью процедуры Close.
Close (<файловая переменная>);
Пример:
Close (f2);
Уничтожить файл можно с помощью процедуры Erase. Уничтожить можно только закрытый файл.
Erase (<файловая переменная>);
Пример:
Erase (f2);
Переименовать файл можно с помощью процедуры Rename.
Rename (<файловая переменная>, <новое имя файловой переменной>: string);
Пример:
Rename (f2, f7: string);
Переместить указатель файла на элемент с нужным номером можно с помощью процедуры Seek.
Seek (<файловая переменная>, <номер элемента>);
Пример:
Seek (f2, 4);
Чтобы определить длину файла используют функцию Filesize.
Filesize (<файловая переменная>);
Пример:
Filesize (f2);
Чтобы определить местонахождение указателя файла используют функцию Filepos.
Filepos (<файловая переменная>);
Пример:
Filepos (f2);
Чтобы определить находиться ли указатель файла на маркере конца файла используют функцию Eof. Значение функции равно true. Если указатель файла находиться сразу за последним элементом файла, или равно false, если в любом другом месте.
Eof (<файловая переменная>);
Пример:
Eof (f2);
Обычно эта функция используется в конструкции:
While not Eof (f2) do
Begin
…………
End;
Чтобы иметь возможность после неправильного ввода имени файла при открытии для чтения ввести нужное Ия файла используют функцию Ioresult, которая возвращает число являющееся условным признаком последней операции ввода-вывода. Если операция завершилась успешно, функция возвращает значение равное нулю. Значение функции доступно, если отключен автоматический контроль ошибок ввода-вывода. Он отключается указанием директиву компилятора следующим образом: