Обработка ошибок открытия файла - 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.

Объяснение кода листинга программы

  1. В начале кода выполняется присвоение значения переменной f строки 'filename.txt'.
  2. Комментарии к коду указывают на отключение контроля ввода-вывода с помощью директивы $I- и включение контроля ввода-вывода с помощью директивы $I+.
  3. Переменная MyIOResult инициализируется значением IOResult, которое будет использоваться для обработки ошибок ввода-вывода.
  4. Если MyIOResult <> 0, то выполняется блок условного оператора, который содержит различные действия для разных вариантов ошибок.
  5. Внутри блока выполняется оператор case MyIOResult of, который позволяет выполнять различные действия в зависимости от значения переменной MyIOResult.
  6. Если MyIOResult = 0, то выполняется блок действий при нормальном открытии файла.
  7. Внутри блока выполняется оператор readln(f, Line), который считывает строку из файла в переменную Line.
  8. Если IOResult <> 0, то выполняется выход из программы с помощью оператора exit.
  9. Действия при нормальном открытии файла могут быть добавлены между пунктами 6 и 7.
  10. Комментарии к коду указывают на отключение контроля ввода-вывода с помощью директивы $I- и включение контроля ввода-вывода с помощью директивы $I+.
  11. В конце кода выполняется оператор readln;, который считывает символ новой строки из файла.
  12. Комментарии к коду указывают на отключение контроля ввода-вывода с помощью директивы $I- и включение контроля ввода-вывода с помощью директивы $I+.
  13. Действия при нормальном открытии файла могут быть добавлены между пунктами 11 и 12.
  14. В конце программы выполняется оператор end., который обозначает конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы