Обработка ошибок открытия файла - Free Pascal
Формулировка задачи:
Как в pascal сделать так:
Если (файл открылся), то делай что-то
Иначе выведи(Я не смог открыть файл).
И кстати, можно ли создавать файл прямо по ходу? Ну то есть я предлагаю в программе создать файл и создаю.
И вот что: не будет ли работать такой (примерно) код(?):
Спасибо.
Привет.
var s: string begin ... //Я тут как-то создал файл, предположим пусть переменная T write('Enter name of file:'); read(s); Close(T); Rename(T,s); ... end.
Решение задачи: «Обработка ошибок открытия файла»
textual
Листинг программы
begin assign(f, 'filename.txt'); {$I-} // отключение контроля ввод-вывода reset(f); {$I+} // включение контроля ввод-вывода MyIOResult:=IOResult; if MyIOResult<>0 then begin case MyIOResult of // действия при разных вариантах ошибок end; exit; end; // действия при нормальном открытии файла ....................... {$I-} // отключение контроля ввод-вывода readln(f, Line); {$I+} // включение контроля ввод-вывода if IOResult <> 0 then exit; ................... end.
Объяснение кода листинга программы
- В начале кода выполняется присвоение значения переменной
f
строки'filename.txt'
. - Комментарии к коду указывают на отключение контроля ввода-вывода с помощью директивы
$I-
и включение контроля ввода-вывода с помощью директивы$I+
. - Переменная MyIOResult инициализируется значением
IOResult
, которое будет использоваться для обработки ошибок ввода-вывода. - Если MyIOResult <> 0, то выполняется блок условного оператора, который содержит различные действия для разных вариантов ошибок.
- Внутри блока выполняется оператор
case MyIOResult of
, который позволяет выполнять различные действия в зависимости от значения переменнойMyIOResult
. - Если MyIOResult = 0, то выполняется блок действий при нормальном открытии файла.
- Внутри блока выполняется оператор
readln(f, Line)
, который считывает строку из файла в переменнуюLine
. - Если IOResult <> 0, то выполняется выход из программы с помощью оператора
exit
. - Действия при нормальном открытии файла могут быть добавлены между пунктами 6 и 7.
- Комментарии к коду указывают на отключение контроля ввода-вывода с помощью директивы
$I-
и включение контроля ввода-вывода с помощью директивы$I+
. - В конце кода выполняется оператор
readln;
, который считывает символ новой строки из файла. - Комментарии к коду указывают на отключение контроля ввода-вывода с помощью директивы
$I-
и включение контроля ввода-вывода с помощью директивы$I+
. - Действия при нормальном открытии файла могут быть добавлены между пунктами 11 и 12.
- В конце программы выполняется оператор
end.
, который обозначает конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д