Бестиповые файлы позволяют записывать на диск произвольные участки пвмяти ЭВМ и считывать их с диска в память. Операции обмена с бестиповыми   файлами  осуществляется   с  помощью процедур  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.