IPB

> Лекция №7.5: Записи. Бинарные файлы
Чат
Форум
Загрузка...
 

страницы: 1 2 3 4 5

Содержание

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

Главное преимущество нетипизированных файлов — это высокая скорость их обработки. Открыть как нетипизированный можно и файл любой другой природы: текстовый или бинарный типизированный. В основном, это применяется в тех случаях, когда нужно перекопировать довольно большой кусок одного файла в другой без изменений.

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

В разделе var файловые переменные, предназначенные для работы с нетипизированными файлами, описываются следующим образом:

var g : File;

Никакая файловая переменная не может быть задана константой.

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

Содержимое этого раздела дословно повторяет всё сказанное в разделе «Назначение типизированного файла».

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

В зависимости от того, какие действия ваша программа собирается производить с открываемым файлом, возможно двоякое его открытие:

Reset(f[, size]); — открытие файла для считывания из него информации и одновременно для записи в него (если такого файла не существует, попытка открытия вызовет ошибку). Эта же команда служит для возвращения указателя на начало файла;

Rewrite(f[, size]); — открытие файла для записи в него информации; если такого файла не существует, он будет создан; если файл с таким именем уже есть, вся содержавшаяся в нём ранее информация исчезнет.

Необязательная переменная size может задать количество байтов, единовременно считываемых из нетипизированного файла или записываемых в него. По умолчанию размер таких «кусков» принимается равным 128 байт.

Закрываются нетипизированные файлы процедурой Close(f), общей для всех типов файлов.

Поиск в нетипизированном файле

Все подпрограммы, описанные в разделе «Поиск в типизированном файле», будут работать и для нетипизированного файла. Но, поскольку тип элементов нетипизированного файла не определён, то размер одного «элемента» принимается равным 128 байт (по умолчанию) или указанному в переменной size во время открытия файла.

Запись и чтение

Для осуществления записи в нетипизированный файл и считывания из него применяются две специальные процедуры BlockRead() и BlockWrite().

Процедура BlockRead(f : File; buf; count : Word [; result : Word]) предназначена для считывания из файла f нескольких элементов разом (их количество указывается в переменной count, а длина устанавливается во время открытия файла) при помощи буфера обмена данными buf. Необязательная переменная result может хранить количество элементов, фактически считанных из файла.

Процедура BlockWrite(f : File; buf; count : Word [; result : Word]) производит запись данных в нетипизированный файл при помощи буфера buf.

Подпрограммы обработки директорий

Приведём здесь также несколько стандартных процедур, осуществляющих работу с директориями, а также с файлами, но внешним относительно самих файлов образом (без их открытия).

Процедура Erase(f : File) удалит файл, связанный с файловой переменной f. Если такого файла нет, произойдёт ошибка, реакцию на которую можно отрегулировать при помощи директивы компилятора {$I} (см. лекцию 6).

Процедура Rename(f : File; s : String) даст файлу, связанному с файловой переменной f, новое имя, указанное в строке s. Если такого файла нет, произойдёт ошибка.

Процедура ChDir(s : String) сделает текущей директорию, указанную в строке s. Если такой директории нет, произойдёт ошибка.

Процедура GetDir(disk : Byte; s : String) запишет в строку s имя текущей директории на указанном диске: (0 — текущий диск, 1 — диск А , 2 — диск В и т. д.).

Процедура MkDir(s : String) создаст в текущей директории новую поддиректорию с указанным в строке s именем. Если в текущей директории уже существуют файл или директория с указанным именем, произойдёт ошибка.

Процедура RmDir(s : String) удалит пустую директорию с заданным в строке s именем. Если такой директории нет, произойдёт ошибка.

Применимость подпрограмм обработки файлов

Сведём информацию о применимости процедур и функций работы с файлами в единую таблицу.

ТекстовыеТипизированныеНетипизированные
Append+
Assign+++
BlockRead+
BlockWrite+
Close+++
Eof+++
Eoln+
FilePos++
FileSize++
Read++
ReadLn+
Reset+++
Rewrite+++
Seek++
SeekEof+
SeekEoln+
Truncate++
Write++
WriteLn+

Замечание: Реакция на ошибку, возникающую при выполнении любой из перечисленных здесь подпрограмм, зависит от состояния директивы компилятора {$I} (см. лекцию 6).

страницы: 1 2 3 4 5

Примечания

 
 К началу страницы 
 

Код для вставки: :: :: :: ГОСТ ::
Поделиться: //
 



-
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"