Решенные задачи на языке Паскаль
Условие задачи - придумал я.
Написать программу, которая открывает текстовый файл (тип файла - text) и считывает из него строку. Если файл неудается открыть (например, файл не существует), тогда программа сама создает этот файл и записывает в него строку.
Программу написать с применением директив компилятора {$I-} и {$I+}.
VAR f: text; st: string; BEGIN {$I-} assign(f, 'my_file.txt'); reset(f); {$I+} if ioresult=0 then begin readln(f, st); writeln('Файл "my_file.txt" существовал!'); writeln('Считанная из файла строка: ', st); end else begin rewrite(f); st:='This was in file!'; writeln(f, st); writeln('Файл "my_file.txt" не существовал!'); writeln('Записанная в файл строка: ', st); end; close(f); END.* переменная f - это файловая переменная типа text;
* переменная st - строка, которая считывается из файла или записывается в него.
Итак, сначала программа должна попытаться открыть файл. Так как мы не знаем точно, что нужный файл существует - нужно применить директиву компилятора {$I-} при открытии файла. Ну а затем {$I+} так как могут возникнуть другие ошибки, которые мы не стали проверять, но при выполнении программы они могут возникнуть и мы их даже не заметим.
Теперь, когда мы выключили проверку на ошибки, нужно самим проверять их. Для этого используем функцию IOResult, которая возвращает 0 (ноль) если ошибок не было и не нулевое значение, если они были.
А дальше все просто, если ошибки при открытии файла не было, то считываем из файла строку, в противном случае создаем такой файл и записываем в него строку.