
Обработка бестиповых файлов
В языке программирования Паскаль есть особый обобщённый тип файла, который можно назвать бестиповым.
В этом файле можно хранить данные любого типа. Описание бестиповой файловой переменной происходит следующим образом:
VAR Имя: file;
После описания такой файловой переменной она обычным способом с помощью процедура Assign должна быть связана с реальным файлом на диске. При открытии бестиповых файлов следует использовать расширенный синтаксис процедур reset и rewrite.
Reset(var f: File; BufSize: Word);
Rewrite(var f: File; BufSize: Word);.
BufSize определяет количество байт, считываемых или записываемых в файл данных за одно обращение к нему. Если этот параметр отсутствует, то используется значение, устанавливаемое по умолчанию (128) при открытии файла. Для большей гибкости рекомендуется установить размер блока 1 байт.
Для записи данных в бестиповой файл используется процедура BlockWrite:
BlockWrite(var f: File; var x, count: Word; var WriteCount: Word);
x – имя переменной, из которой данные записываются в файл;
count – количество блоков размером Bufsize, записываемых в файл;
WriteCount – количество блоков размером Bufsize, записанных в файл.
BlockWrite записывает в файл, связанный с файловой переменной f Count блоков, из переменной x. При корректной записи в файл возвращаемое процедурой BlockWrite значение WriteCount должно совпадать с count.
Для чтения данных из бестипового файла используется процедура BlockRead:
BlockRead((var f: File; var y, count: Word; var ReadCount: Word);
y – имя переменной, в которую считываются данные из файла.
count – количество блоков размером Bufsize,считываемых из файла;
WriteCount – количество блоков размером Bufsize, считанных из файла.
BlockRead считывает из файла, связанного с файловой переменной f Count блоков в переменную y. При корректном чтении из файла возвращаемое процедурой BlockRead записывает в файл, связанный с файловой переменной f Count блоков, из переменной x. При корректной записи в файл возвращаемое процедурой BlockWrite значение WriteCount должно совпадать с count. [л.1]
Таблица 2
Имя |
Название устройства |
Назначение |
Con |
Клавиатура и экран |
Вывод из Con – это чтение с клавиатуры, вывод в Con – запись на экран |
Prn |
Принтер |
Вывод на принтер |
Lpt1 |
Параллельные порты |
Через эти имена происходит вывод данных на принтер или другие устройства |
Lpt2 |
||
Lpt3 |
||
Com1 |
Последовательные порты |
Подключение к портам |
Com2 |
||
Nul |
Фиктивное устройство |
Это бездонный файл, принимающий что угодно, но всегда пустой |
Индивидуальное задание
1)Создать текстовый файл и записать в него 2 экземпляра записей, созданных на предыдущей лабораторной работе.