Главная arrow Язык программирования Pascal arrow Турбо Паскаль Начальный курс В.В.Фаронов arrow 5.4. Типизированные файлы Турбо Паскаль В.В. Фаронов

5.4. Типизированные файлы Турбо Паскаль В.В. Фаронов

Длина любого компонента типизированного файла строго постоянна, что дает возможность организовать прямой доступ к каждому из них (т.е. доступ к компоненту по его порядковому номеру).
Перед первым обращением к процедурам ввода-вывода указатель файла стоит в его начале и указывает на первый компонент с номером 0. После каждого чтения или записи указатель сдвигается к следующему компоненту файла. Переменные в списках ввода-вывода должны иметь тот же тип, что и компоненты файла. Если этих переменных в списке несколько, указатель будет смещаться после каждой операции обмена данными между переменными и дисковым файлом.
Процедура READ. Обеспечивает чтение очередных компонентов типизированного файла. Формат обращения:
READ (<ф.п.>,<сп.ввода>)
Здесь <cn.вводa> - список ввода, содержащий одну или более переменных такого же типа, что и компоненты файла.
Файловая переменная <ф.п.> должна быть объявлена предложением FILE OF... и связана с именем файла процедурой ASSIGN. Файл необходимо открыть процедурой RESET. Если файл исчерпан, обращение к READ вызовет ошибку ввода-вывода.
Процедура WRITE. Используется для записи данных в типизированный файл. Формат обращения:
WRITE (<ф.п.>,<сп.вывода>)
Здесь <сп.вывода> - список вывода, содержащий одно или более выражений того же типа, что и компоненты файла.
Процедура SEEK. Смещает указатель файла к требуемому компоненту. Формат обращения:
SEEK (<ф.п.>,<N компонента>)
Здесь <N компонента> - выражение типа LONGINT, указывающее номер компонента файла.
Первый компонент файла имеет номер 0. Процедуру нельзя применять к текстовым файлам.
Функция FILESIZE. Возвращает значение типа LONGINT, которое содержит количество компонентов файла. Формат обращения: '
FILESIZE (<ф.п.>)
Функцию нельзя использовать для текстовых файлов. Чтобы переместить указатель в конец типизированного файла, можно написать:
seek (FileVar, FileSize(FileVar));
где FILEVAR - файловая переменная.
Функция.FILEPOS. Возвращает значение типа LONGINT, содержащее порядковый номер компонента файла, который будет обрабатываться следующей операцией ввода-вывода. Формат обращения:
FILEPOS (<ф.п.>)
Функцию нельзя использовать для текстовых файлов. Первый компонент файла имеет порядковый номер 0.