ПАСКАЛЬ: РОБОТА З ФАЙЛАМИ
2. Послідовний запис у типізовані файли
Перш, ніж записувати в файл, слід відкрити його для запису. Це задається процедурою REWRITE. Після виклику ReWrite(f) значення f подається як (<>, 0, W), тобто незалежно від попереднього значення f послідовність у файловій змінній стає порожньою:
F
¬ станW
Значення 0 вказівника доступного елемента свідчить про те, що можна записати нове значення в перший, тобто з номером 0, елемент файла. Ця процедура викликається для створення нового файла або поновлення старого зі знищенням даних, що були в ньому. Після її виконання файл називається встановленим у початковий стан для запису.
Запис у файл задається процедурою WRITE. При виконанні її виклику
write ( f, вираз-типу-компонентів-файла)обчислюється значення виразу та присвоюється доступному елементу файла, після чого вказівник доступного елемента зсувається на 1 елемент. Наприклад, після виконання останього з наведених операторів у програмі
program ...
var f : file of integer; x : integer
begin ...
rewrite(f); x:=2;
write(f, 1); write(f, x); write(f, x*x);
...
end.
файлова змінна f має значення, що подається як (<1, 2, 4>, 3, W).
Узагалі, значення (
У виклику write можна вказувати довільне число аргументів-виразів того самого типу: write ( f, вираз1, ... , виразN ). Такий виклик виконується насправді як послідовність
write(f,вираз1); … ; write(f,виразN).
Наприклад, замість write(f, 1); write(f, x); write(f, x*x) можна написати write(f, 1, x, x*x).
Підкреслимо, що процедуру writeln не можна застосовувати до типізованих файлів. Вона призначена лише для роботи з текстами.
Приклад 13.1. Треба створити файл із такими даними про студентів групи: прізвище та ім’ я студента, а також середній бал його успішності.
Дані про студента можна подати записом типу
Student = record