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