Зворотний зв'язок

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

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


Реферати!

У нас ви зможете знайти і ознайомитися з рефератами на будь-яку тему.







Не знайшли потрібний реферат ?

Замовте написання реферату на потрібну Вам тему

Замовити реферат