Реферат на тему:

Послідовний запис у типізовані файли

Перш, ніж записувати в файл, слід відкрити його для запису. Це
задається процедурою 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).

Узагалі, значення (, n, W) файлової змінної f при
виконанні write(f, вираз) міняється на (, n+1, W), де V
позначає значення виразу.

У виклику 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 не можна застосовувати до типізованих
файлів. Вона призначена лише для роботи з текстами.

Приклад 1. Треба створити файл із такими даними про студентів групи:
прізвище та ім’ я студента, а також середній бал його успішності.

Дані про студента можна подати записом типу

Student = record

SName, Name : string[20];

Ball : real

end.

Зв’ язування та встановлення файла в початковий стан для запису оформимо
процедурою OpenFile, а створення – процедурою CreatFile у такій
програмі:

program InPutGroup;

type

Student = record

Sname, Name : string[20];

Ball : real;

end;

var

Fi : file of Student; { Файлова змінна Fi – інформаційний файл }

FileName: string; { Змінна для введення імені файла }

procedure OpenFile;

begin

writeln(‘Задайте ім»я файла, що буде створюватися: ‘);

readln(FileName);

assign(Fi, FileName);

rewrite(Fi);

end;

procedure InPutFile;

var St : Student;

Ch : char;

begin

repeat

writeln(‘Задайте дані про студента:’);

write(‘Прізвище>’); readln(St.SName);

write(‘Ім»я>’); readln(St.Name);

write(‘Середній бал успішності>’); readln(St.Ball);

write(Fi, St); {***}

write(‘Чи треба вводити дані про нового студента? «Y»/»N»> ‘);

readln(Ch);

until (Ch = ‘n’) or (Ch = ‘N’);

close(Fi);

end;

begin

writeln(‘Програма створення файла даних про успішність’);

openfile; { Виклик процедури відкривання файла }

creatfile; { Виклик процедури створення файла }

end.

Похожие записи