Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы по Информатике 2011.doc
Скачиваний:
6
Добавлен:
04.11.2018
Размер:
557.06 Кб
Скачать

2. Открытие файла – Reset, Rewrite.

Для работы с файлом после его объявления прежде всего необходимо его открыть. В языке Паскаль предусмотрены для этого две процедуры:

Reset(f : file); - открывает существующий файл;

Rewrite(f : file); - создает и открывает новый файл.

При описании обеих процедур параметр <file> означает файловую переменную любого типа. Открытие внешнего файла с помощью проце­дуры Reset в случае его отсутствия на диске может привести к ошибке при выполнении программы. Подобные ошибочные ситуации в операциях ввода-вывода позволяет отслеживать специальная функция IOresult.

Пример. Стандартное открытие файла.

Assign(f,’c:\TSS\TSS85\Vovchik.txt’);

Reset(f);

В Pascal При назначении файловой переменной пустой строки происходит автоматическая ссылка на стандартный файл ввода, что в модуле System соответствует устройству con.С открытием такого файла по­является возможность ввода данных с клавиатуры.

Операционная си­стема устанавливает каждому открываемому файлу так называ­емый обработчик файлов с определенным номером. Этот обработчик осуществляет операции обмена данными через буфер ввода-вывода. Определение таких обработчиков и их количество на сеанс работы устанавливается при загрузке операционной системы с помощью спе­циальной команды <files>, включенной в файл конфигурации CONFIG.SYS. Например, команда files = 15 в файле config.sys задает воз­можность одновременной работы с 15 пользовательскими файлами, определяет соответствующее количество обработчиков файлов и ре­зервирует для этого необходимые ресурсы.

Имеются некоторые отличия в использовании процедуры Reset при открытии различных типов файлов. В отношении текстовых файлов (тип text) действие процедуры означает открытие файла только для чтения. Для нетипизированных файлов в описание процедуры добав­ляется еще один параметр RecSize типа word, который устанавлива­ет длину записи для функций обмена с файлом. Процедура Reset для нетипизированного файла имеет вид:

Reset(f : file; RecSize : word);

Процедура Rewrite создает и открывает новый файл. Использова­ние этой процедуры требует особого внимания. При попытке создать и открыть новый файл с именем уже существующего на диске набора данных действие процедуры Rewrite сведется к удалению этого на­бора и созданию нового пустого файла с тем же именем. На практи­ке это приводит к потере информации. Реальный выход в таких си­туациях заключается в предварительном создании резервных копий тех файлов, над которыми могут производиться подобные критичес­кие действия.

Rewrite(f);

При открытии новых нетипизированных файлов для задания длины записи в описание процедуры Rewrite добавляется дополнительный параметр RecSize типа word. В этом случае процедура имеет вид:

Rewrite(f : file; RecSize : word);

Если процедура Rewrite используется для текстового файла, то к открываемому новому набору данных в дальнейшем могут быть при­менимы только операции записи.

3. Закрытие файла - Close.

Операция закрытия файла является логическим окончанием работы с любым открытым файлом. Для этого служит процедура

Close(f : file); {for Pascal}

CloseFile(f : file); {for Delphi}

Использование процедуры Close позволяет устранить связь фай­ловой переменной с внешним файлом,установленную с помощью проце­дуры Assign. Выражаясь языком операционной системы, можно ска­зать, что после обращения к процедуре Close выделенный для дан­ного файла обработчик освобождается для других работ. Этим про­диктовано требование обязательного закрытия файла после оконча­ния работы с ним.

Пример. Полная цепочка команд для создания простого текстово­го файла с именем SVETA.TXT для Pascal:

Var f:text;

Begin

Assign(f, 'Sveta.ТХТ');

ReWrite(f);

Write(f, 'Простой текстовый файл');

Close(f);

End.