TURBO PASCAL

Новости           

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности

Гостевая книга

От автора

Блочные файлы

Описание типа блочного файла

С помощью блочных файлов возможно выполнение небуферизованных операций ввода-вывода, осуществляемых непосредственно между переменными программы и внешней дисковой памятью. По умолчанию элементами блочного файла являются блоки по 128 байт. Блочный файл может представлять любой дисковый набор данных. Поэтому такие операции, как Erase и Rename, могут быть выполнены с помощью блочных файлов.

Описание типа блочного файла состоит из ключевого слова file.

Синтаксис: описание-типа-блочного-файла: file

Пример:

Var
DiskFile : file;
FileName : string [40];
begin
Write ('FileName:-');
Readln (FileName);
Assign (DiskFile, FileName);
Erase (DiskFile)
end

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

Тип элементов набора данных не имеет значения.

Выполнение операций ввода-вывода над блочными файлами осуществляется с помощью процедур BlockRead и BlockWrite. Они заменяют процедуры Read и Write, операции Assign, Reset, Rewrite, Close, Seek и Eof выполняют те же функции, что и для файлов других видов.

Процедура BlockRead

Синтаксис: BlockRead (FileVar, Buffer, Count, Reply)

    BlockRead (FileVar, Buffer, Count)

Filevar - имя файловой переменной, представляющей блочный файл, Buffer - имя произвольной программной переменной, Count - выражение типа integer, Reply - имя переменной типа integer.

Процедура BlockRead выводит из файла FileVar в область оперативной памяти, занимаемой переменной Buffer, Count блоков по 128 байт каждый. Если в процедуре указан параметр Reply, то этой переменной будет присвоено значение, определяющее фактическое количество записанных блоков. Если эта величина меньше Count, значит, указатель файла находится в конце.

Процедура BlockWrite

Синтаксис: BlockWrite (FileVar, Buffer, Count, Reply)

    BlockWrite (FileVar, Buffer, Count)

Filevar - имя файловой переменной, представляющей блочный файл, Buffer - имя произвольной программной переменной, Count - выражение типа integer, Reply - имя переменной типа integer.

Процедура BlockWrite записывает в файл FileVar из области оперативной памяти, занимаемой переменной Buffer, Count блоков по 128 байт каждый. Если в процедуре указан параметр Reply, то этой переменной будет присвоено значение, определяющее фактическое количество записанных блоков. Если эта величина меньше Count, значит, процедура выполнена неправильно.

Пример:

Program Copy;
Var
Src, Trg : file;
Buffer : array [0..255,boolean] of byte;
Source, Target : string [40];
Reply : integer;
Begin
Write ('Source:-');
Readln (Source);
Write ('Target:-');
Readln (Target);
Assign (Src,Source);
Assign (Trg, Target);
Reset (Src);
Rewrite (Trg);
repeat
BlockRead (Src,Buffer,4,Reply);
BlockWrite (Trg,Buffer,4,Reply)
until Reply < 4;
> Close (Src);
Close (Trg)
End.

Данная программа копирует набор данных с произвольным типом элементов.

Содержание 

На главную страницу
(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

    Rambler's Top100 PROext: Top 1000
    Rambler's Top100 Яндекс цитирования
Hosted by uCoz