End;
Var
R1,R2:pointer;
I:integer;
Inp,out:file of integer;
Begin
Reset(inp);Rewrite(out);
While not eof(inp) do
Begin
R1:=Nil;
Read(Inp,I);
While I<> -1 do
Begin
New(R2);
R2^.data:=I; R2^.point:=R1;
R1:=R2;
Read(Inp,I);
End;
R2:=R1;
While R2<> Nil do
Begin
Write(out, R2^.data);
R2:= R2^.point;
End;
Write(out,’-1’);
End
End.
2.13.Файли
Файлові типи даних (файли) визначають впорядковані сукупності довільного числа компонентів одного типу з послідовним методом доступу. На відміну від масивів число компонентів файла при його означенні не задається і компоненти файла не мають індексів. У кожний момент доступний лише один компонент файла, причому до цього компонента можна дійти лише після почергового перегляду всіх попередніх компонентів. Таким чином, файли є моделями периферійних пристроїв послідовного доступу, зокрема таких, як магнітні стрічки. Звичайно, файли можуть створюватися не лише на магнітних стрічках, а й на магнітних дисках (гнучких чи жорстких), інших зовнішніх пристроях, а також в оперативній пам'яті.
Зауважимо, що в деяких реалізаціях мови Паскаль можна використовувати також файли прямого доступу. В них є змога прямого доступу до будь-якого компонента у файлі.
Означення файлового типу має вигляд:
TYPE ім'я типу = FILE OF тип компонент;
Типом компонентів може бути простий або складений, крім файлового. Приклади означень файлових типів:
TYPE numbers = FILE OF integer;
chfile = FILE OF char;
vector = ARRAY [l..10] OF real;
cornplex = RECORD