Обработка ошибок ввода-вывода
При выполнении программы, написанной на языке Турбо Паскаль, установлены следующие правила обработки ошибочных ситуаций, связанных с вводом и выводом. По умолчанию при выполнении любой такой операции автоматически производится проверка на возникновение ошибки. При обнаружении ошибки выполнение программы прекращается, на экран выводится диагностическое сообщение с условным номером ошибки.
Можно предусмотреть в самой программе реакцию на ошибочные ситуации. Для этого используется директива компилятора {$I-}. В этом случае возникновение ошибки не будет приводить к немедленному завершению программы, а код этой ошибки будет запомнен в качестве значения стандартной функции IOResult без параметров. При отсутствии ошибок значение этой функции равно нулю. Например:
...
Writeln (' Введите имя файла');
Read (NameFil);
Assign (Fil,NameFil);
{$I-} { автоматический контроль отключен }
Reset (Fil);
Code:=IOResult;
If Code <> 0 Then Begin
Write ('Ошибка при открытии файла ',
NameFil,': ');
Case Code of
2: Writeln ('файл не найден');
3: Writeln ('путь к файлу не найден');
4: Writeln ('слишком много открытых файлов');
5: Writeln ('доступ закрыт');
6: Writeln ('нарушена информация в полях файла или системных областях');
8: Writeln ('недостаточно памяти');
10: Writeln ('несовместимые параметры окружения');
11: Writeln ('нераспознанный формат диска');
else
Writeln ('нераспознана');
end;
Exit;
end;
{$I+} { автоматический контроль включен }
...
При использовании функции IOResult, если отключен режим автоматического контроля, то после возникновения ошибки все последующие операции с любым файлом будут игнорироваться, пока не произойдет обращение к функции IOResult. Поэтому рекомендуется вызывать эту функцию сразу после выполнения операции, связанной с файлом. Кроме этого, обращение к функции обнуляет код ошибки, поэтому повторное обращение будет давать нулевой результат.
Специальные операции
Эта группа операций предназначена для действий с элементами файловой системы ОС – каталогами и файлами. К ней относятся следующие процедуры:
· удаление файла на диске
Erase (< имя_файловой_переменной >);
· переименование файла
Rename (< имя_файловой_переменной >, <строка>);
· установка текущего каталога
ChDir;
· создание нового каталога
MkDir (<имя_подкаталога>);
· удаление пустого подкаталога
RmDir (<имя_подкаталога>);
Перечисленные средства работы с файлами являются стандартными, при использовании модуля DOS возможно применение дополнительных процедур и функций.
Дата добавления: 2016-06-29; просмотров: 2066;