Край на файла

Стойността на функцията EOF може да се провери веднага след отваряне на файла. Ако в същото време се окаже, че е True, това означава, че файлът не съдържа нито един елемент от данни, т.е. той е празен (размерът на такъв файл е нула).

Листинг 7.5 показва процедура, която върши работата. Той чете редове от файл, чието име е въведено от потребителя, докато програмата работи, и показва тези редове в полето Memo. Прозорецът на програмата е показан на фиг. 7.6.

fName

Фиг. 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 преди всяко четене, включително първото.