Бестиповые файлы позволяют записывать на диск произвольные участки
пвмяти ЭВМ и считывать их с диска в память. Операции обмена с бести
повыми файлами осуществляется с помощью процедур BlokRead и
BlockWrite. Кроме того, вводится расширенная форма процедур Reset и
Rewrite. В остальном принципы работы остаются такими же, как и с ком
понентными файлами.
Перед использованием логический файл
var f: File;
должен быть связан с физическим с помощью процедуры
Assign. Далее
файл должен быть открыт для чтения или для записи процедурой Reset
или Rewrite, а после окончания работы закрыт процедурой
Close.
При открытии файла длина буфера устанавливается по умолчанию в 128
байт. TURBO PASCAL позволяет изменить размер буфера ввода - вывода,
для чего следует открывать файл расширенной записью процедур
Reset(var f: File; BufSize: Word )
или
Rewrite(var f: File; BufSize: Word )
Параметр BufSize задает число байтов, считываемых из файла или за-
писываемых в него за одно обращение. Минимальное значение BufSize - 1
байт, максимальное - 64 К байт.
Чтение данных из бестипового файла осуществляется процедурой
BlockRead( var f: File; var X; Count: Word; var QuantBlock: Word );
Эта процедура осуществляет за одно обращение чтение в переменную X
количества блоков, заданное параметром Count, при этом длина блока
равна длине буфера. Значение Count не может быть меньше 1. За одно
обращение нельзя прочесть больше, чем 64 К байтов.
Необязательный параметр QuantBlock возвращает число блоков (буфе
ров), прочитанных текущей операцией BlockRead. В случае успешного за
вершения операции чтения QuantBlock = Count, в случае аварийной ситу
ации параметр QuantBlock будет содержать число удачно прочитанных
блоков. Отсюда следует, что с помощью параметра QuantBlock можно
контролировать правильность выполнения операции чтения.
Запись данных в бестиповой файл выполняется процедурой
BlockWrite( var f: File; var X; Count: Word; var QuantBlock: Word );
которая осуществляет за одно обращение запись из переменной X коли
чества блоков, заданное параметром Count, при этом длина блока равна
длине буфера.
Необязательный параметр QuantBlock возвращает число блоков (буфе
ров), записанных успешно текущей операцией
BlockWrite.