Вторник, Октябрь 20Добро пожаловать!

Ошибки открытия файлов в языке Delphi

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

В процессе запуска программы из Delphi при возникновении ошибки в момент открытия файла появляется исключение, и на дисплее ПК высвечивается специальное диалоговое окно с сообщением об ошибке открытия файла:

Если запуск программы проводится из системы Windows, то внешний вид окна с сообщением, сигнализирующем о возникновении ошибки при открытии файла, представится следующим образом

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

Автоматическая обработка ошибок в языке Delphi

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

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

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

Предложим фрагмент программы, который реализует вышеприведенный алгоритм действий.

 . . .
AssignFile(fn,filename); 
{$I-} 
Append(fn) // открываем файл для добавления  в него информации 
{$I+} 
if IOResult<> 0 // ошибка открытия  файла
then 
Rewrite(fn); // открыть файл для записи  
// здесь открыт существующий или новый файл
  . . . 

Перед окончательным завершением своей работы программой должны быть закрыты все открытые файлы. Чтобы это осуществить в языке Delphi, нужно сделать вызов процедуры close. Данная процедура содержит всего лишь один параметр – наименование файловой переменной.

Пример

Close(fn); 
      . . .

откуда fn обозначает имя файловой переменной.

Итак, мы разобрали некоторые ошибки открытия файлов в языке Delphi.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *