КАТЕГОРИИ: Архитектура-(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); где 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. Нетипизированные (или бестиповые) файлы позволяют записывать на диск произвольные участки пвмяти ЭВМ и считывать их с диска в память. Операции обмена с бестиповыми файлами осуществляется с помощью процедур BloсkRead и BlockWrite. Кроме того, вводится расширенная форма процедур Reset и Rewrite. В остальном принципы работы остаются такими же, как и с компонентными файлами. var f: File; должен быть связан с физическим с помощью процедуры Assign. Далее файл должен быть открыт для чтения или для записи процедурой Reset или Rewrite, а после окончания работы закрыт процедурой Close. Reset(var f: File; BufSize: Word) или Rewrite(var f: File; BufSize: Word) Параметр BufSize задает число байтов, считываемых из файла или записываемых в него за одно обращение. Чтение данных из нетипизированного файла осуществляется процедурой: BlockRead(var f: File; var X; Count: Word; var QuantBlock: Word); Эта процедура осуществляет за одно обращение чтение в переменную X количества блоков, заданное параметром Count, при этом длина блока равна длине буфера. Значение Count не может быть меньше 1. За одно обращение нельзя прочесть больше, чем 64 К байтов. Запись данных в нетипизированный файл выполняется процедурой: BlockWrite(var f: File; var X; Count: Word; var QuantBlock: Word); которая осуществляет за одно обращение запись из переменной X количества блоков, заданное параметром Count, при этом длина блока равна длине буфера.
Дата добавления: 2014-01-06; Просмотров: 421; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |