ПАСКАЛЬ: РОБОТА З ФАЙЛАМИ
end.
Як бачимо, читання першого елемента задано без перевірки, чи можна взагалі його прочитати. У разі порожнього файла виконання програми завершується аварійно.
Приклад 3. Вивести на екран комп’ ютера дані про студентів з файла, створеного за програмою з прикладу 13.1.
Природньо розглядати файл як послідовність записів типу Student. Його елементи по одному читаються в допоміжну змінну St та значення її полів (прізвище, ім’ я й середній бал), що мають базовий тип або є рядками, виводяться на екран із його попереднім очищенням. Очищення екрану задається викликом процедури CLRSCR, що входить до складу модуля Crt. Після кожного виведення для одержання нових даних слід натиснути на клавішу Enter.
У наступній програмі використовується змінна IOResult, означена в модулі Dos. Вона набуває ненульового значення, якщо при виконанні процедури Reset виникла якась помилка, наприклад, зв’ язана з тим, що користувач задав ім’ я неіснуючого файла. Перед її викликом вимикається режим перевірки правильності введення-виведення, оскільки в цьому режимі за помилкового виконання Reset програма аварійно завершується. Після виклику Reset режим перевірки вмикається знов.
program OutPutGroup;
uses Crt, Dos; { Підключення модулів Crt та Dos }
type Student = record
Sname, Name : string[20]; Ball : real;
end;
var Fi : file of Student;
FileName: string; { Змінна для введення імені файла }
procedure OpenFile;
var Rez : Integer; Ch : char;
begin
Rez:=1;
while Rez <> 0 do { Rez=0 – ознака того, що введено} {правильне зовнішнє ім’я файла}
begin
writeln('Задайте ім''я файла'); readln(FileName);
assign(Fi, FileName);
{$I-} {Вимкнення контролю правильності читання/запису}
reset(Fi);