Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
17
Добавлен:
13.03.2016
Размер:
19.46 Кб
Скачать

Нетипизированные файлы

лекция №16

Описание нетипизированного файла

VAR ИмяФайла: FILE;

Содержимое нетипизированного файла рассматривается системой программирования как последовательность байтов. Нетипизированный файл может содержать данные в любом представлении (внешнем, внутреннем). Ответственность за правильное использование данных несет программист. Нетипизированные файлы дают возможность организовать

высокоскоростной обмен информацией.

Процедуры открытия нетипизированного файла

RESET(ИмяФайла, РазмерЗаписиВбайтах) – для чтения,

REWRITE(ИмяФайла, РазмерЗаписиВбайтах) – для записи.

Запись – это минимальное количество передаваемых за одно обращение к устройству байтов. Размер

записи по правилу умолчания равен 128. За одно обращение к устройству передается блок из N

записей. Высокоскоростная передача данных получается, когда размер блока равен кластеру.

Кластер – количество байтов, считываемых за один поворот диска. Типичный размер кластера – 512 или 1024.

Процедуры чтения и записи для нетипизированного файла

BLOCKREAD(ИмяФайла, Буфер, N, NN)

BLOCKWRITE(ИмяФайла, Буфер, N, NN),

буфер - переменная для считывания (записи) информации, NN - число считанных записей (NN<=N, строгое неравенство возможно для последнего блока)

Пример. Процедура копирования файлов произвольного типа

Procedure Kopir(infile,outfile:string);

Var f1,f2:file; Buf:array[1..Klaster] of Byte; i:word; {Klaster - глобальная константа, размер кластера} Begin assignfile(f1,infile); assignfile (f2,outfile);

reset(f1,1); rewrite(f2,1); repeat

BlockRead(f1,Buffer, Klaster,i);

BlockWrite(f2,Buffer, Klaster,i) until eof(f1);

closefile (f1); closefile (f2);

End.