Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Ошибки открытия файла

Читайте также:
  1. Quot;2 по цене 1": что считается половиной ошибки в части С?
  2. S: Назовите предложение без ошибки в образовании формы слова
  3. Адрес файла включает в себя способ доступа к файлу и имя сервера Интернета, на котором находится файл.
  4. Аудит кассовых операций, операций по расчетному и другим счетам в банках. Типичные ошибки.
  5. Аудит МПЗ. Типичные ошибки
  6. Аудит операций по отгрузке и продаже продукции. Типичные ошибки
  7. Аудит основных средств и нематериальных активов. Типичные ошибки.
  8. Билет 4. История открытия биоэлектрических явлений. Природа возбуждения.
  9. В каких типах простого файла поиск осуществляется последовательным просмотром?
  10. Великие географические открытия и начало нового времени в Западной Европе.

Попытка открыть файл может завершиться неудачей и вызвать ошибку времени выполнения программы. Причин неудачи при открытии файлов может быть несколько. Например, программа попытается открыть файл на гибком диске, который не готов к работе (не закрыта шторка накопителя, или диск не вставлен в накопитель). Другая причина — отсутствие открываемого в режиме добавления файла (файла нет — добавлять некуда).

При запуске программы из Delphi в случае ошибки во время открытия файла возникает исключение, и на экране появляется диалоговое окно с сообщением (рис. 7.2).

Рис. 7.2. Пример сообщения об ошибке открытия файла (программа запущена из Delphi)

Если программа запускается из Windows, то окно с сообщением об ошибке выглядит иначе (рис. 7.3).

Рис. 7.3. Пример сообщения об ошибке открытия файла (программа запущена из Windows)

Программа может взять на себя задачу контроля за результатом выполнения инструкции открытия файла. Сделать это можно, проверив значение функции IOResult (Input-Output Result — результат ввода/вывода). Функция IOResult возвращает 0, если операция ввода/вывода завершилась успешно; в противном случае — код ошибки (не ноль).

Для того чтобы программа смогла проверить результат выполнения операции ввода/вывода, нужно разрешить ей это делать. Для этого надо перед инструкцией вызова процедуры открытия файла поместить директиву компилятору — строку {$I-}, которая запрещает автоматическую обработку ошибок ввода/вывода. Эта директива сообщает компилятору, что программа берет на себя контроль ошибок. После инструкции открытия файла следует поместить директиву {$I+}, восстанавливающую режим автоматической обработки ошибок ввода/вывода.

На рис. 7.4 приведена блок-схема алгоритма открытия файла для добавления, обеспечивающего создание файла (и тем самым устраняющего ошибку, возникающую при попытке открыть несуществующий файл) в случае, если открываемого для добавления файла на диске еще нет.

Рис. 7.4. Алгоритм открытия файла с обработкой возможной ошибки

Ниже приведен фрагмент программы, реализующий приведенный выше алгоритм открытия файла.

AssignFile(f,filename);

{$I-} // запрещает автоматическую обработку ошибок ввода/вывода.

Append(f) // открыть для добавления

{$I+} // восстанавливает режим автоматической обработки ошибок ввода/вывода.

if IOResult<>0 //контроль за результатом выполнения инструкции открытия файла

then Rewrite(f); // открыть для записи

// здесь открыт существующий или новый файл




Дата добавления: 2015-02-16; просмотров: 87 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.306 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав