Изучение языка программирования
Турбо Паскаль

На этом сайте можно: скачать среду программирвания Турбо Пакаль, изучить язык программирования Турбо Паскаль, а так же скачать программы на языке Турбо Паскаль! Рейтинг@Mail.ru Решенные задачи на языке Паскаль

Условие задачи - придумал я.
Написать программу, которая открывает текстовый файл (тип файла - 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 (ноль) если ошибок не было и не нулевое значение, если они были.
А дальше все просто, если ошибки при открытии файла не было, то считываем из файла строку, в противном случае создаем такой файл и записываем в него строку.

Copyright © 2001«http://www.pascalstudy.narod.ru» & «http://www.gfifdos.narod.ru»
Павел, e-mail: gfifdos@yandex.ru