Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КУРСОВАЯ ИНФОРМАТИКА Заочники_МСФ / Экзамен / Конспект лекций по ОАиП.pdf
Скачиваний:
80
Добавлен:
18.05.2015
Размер:
959.11 Кб
Скачать

Закрываются нетипизированные файлы процедурой 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).

Соседние файлы в папке Экзамен