КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Б е с т и п о в ы е ф а й л ы
К О М П О Н Е Н Т Н Ы Е Ф А Й Л Ы
Компонентный или типизированный файл - это файл с объявленным ти- пом его компонент. Компонентные файлы состоят из машинных представле- ний значений переменных, они хранят данные в том же виде, что и па- мять ЭВМ. Описание величин файлового типа имеет вид:
type M= File Of T;
где М - имя файлового типа, Т - тип компоненты. Например:
type FIO= String[20]; SPISOK=File of FIO; var STUD, PREP: SPISOK;
Здесь STUD, PREP - имена файлов, компонентами которых являются строки. Описание файлов можно задавать в разделе описания переменных:
var fsimv: File of Char; fr: File of Real;
Компонентами файла могут быть все скалярные типы, а из структури- рованных - массивы, множества, записи. Практически во всех конкретных реализациях языка ПАСКАЛЬ конструкция "файл файлов" недопустима. Все операции над компонентными файлами производятся с помощью стандартных процедур:
Reset, Rewrite, Read, Write, Close.
Для ввода - вывода используются процедуры:
Read(f,X); Write(f,X);
где f - имя логического файла, Х - либо переменная, либо массив, либо строка, либо множество, либо запись с таким же описанием, какое имеет компонента файла. Выполнение процедуры Read(f,X) состоит в чтении с внешнего уст- ройства одной компоненты файла и запись ее в X. Повторное применение процедуры Read(f,X) обеспечит чтение следующей компоненты файла и за- пись ее в X. Выполнение процедуры Write(f,X) состоит в записи X на внешнее уст- ройство как одной компоненты. Повторное применение этой процедуры обеспечит запись X как следующей компоненты файла. Для работы с компонентными файлами введена расширенная форма опе- раторов ввода и вывода:
Read(f,X1,X2,...XK)
Write(f,X1,X2,...XK)
Здесь f - компонентный файл, а переменные Х1, Х2,...ХК должны иметь тот-же тип, что и объявленный тип компонент файла f.
Бестиповые файлы позволяют записывать на диск произвольные участки пвмяти ЭВМ и считывать их с диска в память. Операции обмена с бести- повыми файлами осуществляется с помощью процедур 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.
Дата добавления: 2014-01-07; Просмотров: 295; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |