Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2011_12 Комп.Науки_2сем.doc
Скачиваний:
4
Добавлен:
13.09.2019
Размер:
476.67 Кб
Скачать

Запись в файл

procedure Write(F, список выражений)

Данные записываются в файл. После записи файловый указатель устанавливается после записанных данных.

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

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

Закрытие файла

procedure Close(F)

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

После закрытия файла файловую переменную можно связать с другим файлом с помощью Assign.

17.4.Подпрограммы для работы с закрытыми файлами любых типов

Проверка существования файла

function FileExists(name): boolean

где name ‑ строковое выражение (в частности, переменная или константа), задающее имя файла.

Если name не содержит пути к файлу, он ищется в текущем каталоге. Возвращает True, если данный файл существует.

Удаление закрытого файла

procedure Erase(F)

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

Переименование закрытого файла

procedure Rename(F,newname)

где newname ‑ строковое выражение, в частности, переменная или константа, задающее новое имя файла.

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

Пример. Текстовый файл нельзя одновременно читать и писать в него. Поэтому для редактирования текстового файла создают новый файл и пишут в него отредактированные строки исходного файла. Закрыв оба файла, исходный удаляют, а новый файл переименовывают, давая ему имя исходного файла.

17.5.Обработка ошибок ввода-вывода

При работе с файлами возможны ошибки, например:

  • неправильно задано имя существующего файла или файла с таким именем нет на диске;

  • попытка прочитать нечисловое значение в переменную числового типа;

  • попытка записать в текстовый файл, открытый на чтение;

  • попытка закрыть файл, который не был открыт.

Ошибки приводят к исключительным ситуациям, стандартная реакция на которые – прекращение работы программы.

Для организации собственной реакции на ошибки используют защищенные блоки try except:

try

Операторы, которые могут привести к исключительным ситуациям

except

Операторы, выполняемые при возникновении исключительных ситуаций

end

Порядок выполнения операторов в блоке:

  • Выполняются операторы секции try..except.

  • Если исключительная ситуация не возникла, работа защищенного блока на этом завершается.

  • Если исключительная ситуация возникла, выполняются операторы секции except..end.

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

Использование блока try except

Использование функции FileExists

Assign(F, name);

try Reset(F); //Если файл существует, он открывается

except Rewrite(F); //иначе открывается новый файл

Assign(F,name);

if FileExists(name)

then Reset(F)

else Rewrite(F);

В следующем примере можно сделать три попытки ввода имени файла для его открытия:

k:=0; //Счетчик попыток открыть файл

repeat

flag:=true;

readln(name);

k:=k+1;

Assign(F,name);

try

Reset(F); //Может возникнуть ошибка

except

writeln('Ошибка. Повторите ввод имени файла')

flag:=false;

end

until flag or (k=3); //Либо файл открылся, либо исчерпаны попытки

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