Край на файла
Стойността на функцията EOF може да се провери веднага след отваряне на файла. Ако в същото време се окаже, че е True, това означава, че файлът не съдържа нито един елемент от данни, т.е. той е празен (размерът на такъв файл е нула).
Листинг 7.5 показва процедура, която върши работата. Той чете редове от файл, чието име е въведено от потребителя, докато програмата работи, и показва тези редове в полето Memo. Прозорецът на програмата е показан на фиг. 7.6.
Фиг. 7.6.Прозорец на програматаЧетене от файл
Списък 7.5. Четене от файл
Windows, Съобщения, SysUtils, Варианти, Класове,
Графики, контроли, формуляри, диалогови прозорци, StdCtrl, бутони;
процедураButton2Click(Подател: TObject);
procedureButtonlClick(Sender: TObject); частен
// щракнете върху бутона Отвори
процедураTForm1.Button1Click(Подател: TObject);
f: текстов файл; // файл fName: String[80]; // име на файл
buf: низ [80]; // буфер за четене от файл
fName := Edit1.Text; AssignFile(f, fName);
нулиране (f); // отворено за четене
ако IOResult<>0тогава започва
MessageDlgt'Грешка при достъп до файл ' + fName,
mtError,[mbOk],0); изход; край;
// четене от файл
readln(f, buf); // прочете ред от файл
Memo1.Lines.Add(buf); // добавяне на низ към полето Memo1
CloseFile(f); // затворете файла
// щракнете върху бутона Запиши - запис във файл
процедураTForml.Button2Click(Подател: TObject);
f: текстов файл; // файл
fName: String[80]; // име на файл
fName := Edit1.Text; AssignFile(f, fName);
пренаписване (f); // отворен за пренаписване
fori:=0toMemo1.Lines.Count do // редовете са номерирани от нула
CloseFile(f); // затваряне на файл
MessageDlg('Данни, записани във файл ',mtlnformation,[mbOk],0);
За организиране на обработката на файла е използвана инструкцията за цикъл while, която проверява стойността на функцията EOF преди всяко четене, включително първото.