Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
freePascal 2.0_0.doc
Скачиваний:
13
Добавлен:
01.05.2025
Размер:
343.55 Кб
Скачать

Подпрограммы для работы со всеми типами файлов

Процедуры

assign(var f; filename: string)

Связывает логический файл f с физическим файлом, имя которого задано в строке filename.

close(var f)

Закрывает открытый логический файл. Вызов процедуры close необходим при завершении работы с файлом, который был открыт для записи, поскольку при ее выполнении происходит выгрузка содержимого буфера.

erase(var f)

Уничтожает физический файл на диске, который был связан с файловой переменной f.

rename(var f; newname: string)

Переименовывает физический файл на диске, связанный с логическим файлом f.

reset(var f)

Открывает логический файл f для последующего чтения данных.

rewrite(var f)

Открывает логический файл f для записи данных. Если физический файл, с которым связана переменная f, существовал ранее, он очищается, то есть вся информация из него теряется. Если файл не существовал, он создается.

Функции

eof(var f): boolean

Возвращает значение true, если при чтении достигнут конец файла.

IOresult : integer

Возвращает целое число, соответствующее коду последней ошибки ввода-вывода. При нормальном завершении операции функция вернет значение 0. Функция IOresult работает только с ключом компиляции {$I-}.

Текстовые файлы

Текстовый файл можно открыть не только для чтения или записи с помощью процедур resetи rewrite, но и для добавления информации в конец. Для этого служит процедура append:

append(var f)

Для чтения из файла применяются процедуры:

read(f, список)

readln(f, [список])

Процедуры записи в текстовый файл:

write(f, список)

writeln(f, [список])

При записи в файл происходит преобразование из внутренней формы представления выводимых величин в символьные строки.

Чтение и запись выполняются последовательно, то есть считать/записать очередной символ можно только после аналогичной операции с предыдущим.

Бестиповые файлы

Бестиповые файлы предназначены для хранения участков оперативной памяти на внешних носителях. Чтение и запись производится через буфер "порциями", равными размеру буфера. Размер буфера, отличающийся от стандартного (128 байт), можно задать при открытии файла вторым параметром процедур reset и rewrite:

reset(var f: file; bufsize: word)

rewrite(var f: file; bufsize: word)

Непосредственно чтение и запись выполняются с помощью процедур blockread и blockwrite:

blockread(var f: file; var x; count: word; var num: word);

blockwrite(var f: file; var x; count: word; var num : word);

Процедура blockread считывает в переменную x количество блоков count. Длина блока равна размеру буфера. Значение count должно быть больше или равно 1. Необязательный параметрnum возвращает количество прочитанных блоков.

Процедура blockwrite выполняет запись в файл count блоков, начиная с адреса, заданного переменной x. Длина блока равна длине буфера. num возвращает число успешно записанных блоков.

Для бестиповых файлов применяется как последовательный, так и прямой доступ.

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

Типизированные файлы применяются для хранения однотипных элементов в их внутренней форме представления. Тип компонент задается после ключевых слов file of.

Например:

type mass = array [1 .. 10] of integer;

var x: mas;

f : file of mass;

begin

assign(f, 'Newfile');

rewrite(f);

...

write(f, a, b);

close(f)

end.

За одну операцию записывается или считывается столько компонент, сколько перечислено в процедурах write или read.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]