Когда нужно выполнить считывание всего текстового файла, его необходимо считывать последовательно до достижения конца файла. Для определения конца файла служит функция Eof. Эта функция принимает единственный параметр файла и возвращает булевское значение, указывающее, был ли достигнут конец файла:
function Eof [ (var F: Text) ]: Boolean;
Как правило, наиболее рациональный способ считывания текстового файла предусматривает использование цикла while, продолжающего итерации вплоть до достижения конца файла. Следующий пример иллюстрирует копирование содержимого одного текстового файла в другой с использованием цикла while not Eof.
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
srcFile: Text;
destFile: Text;
line: string;
begin
{ попытка открытия файла-источника }
AssignFile(srcFile, 'data.txt');
{$I-}
Reset(srcFile);
{$I+}
if IOResult = 0 then
begin
{ поппытка открытия целевого файла }
AssignFile(destFile, 'copy.txt');
{$I-}
Rewrite(destFile);
{$I+}
if IOResult = 0 then
begin
{ цикл while, копирующий текст из файла-источника
в файл назначения }
while not Eof(srcFile) do
begin
Readln(srcFile, line);
Writeln(destFile, line);
Writeln('Copying: ', line);
end; // while not eof
CloseFile(destFile);
Writeln;
Writeln('File successfully copied');
end; // если srcFile успешно открыт
CloseFile(srcFile);
end; // если srcFile успешно открыт
Readln;
end.