После считывания или записи всегда проверяйте как прошла операция! Для этого в Паскале предусмотрены ключи {$I-} и {$I+}, пример:
Var IoRes : Integer; f : File of text; Procedure Error(IO:Integer); Begin Writeln('Произошла ошибка #',IO); Readln; End; BEGIN Assign(F,'c:\temp\example.txt'); Repeat {$I-} Reset(F); IoRes:=IOResult; {$I+} If IoRes0 then Error(IoRes); Until IoRes=0; {$I-} Write(F,'Hello world!'); IORes:=IOResult; {$I+} If IoRes0 then Error(IORes); END.