type
PNode=^Node;
Node=record
num:integer;
next:PNode;
end;
var
Head:PNode;
f:text;
n:integer;
procedure AddToSpis(var Head1:PNode;k:integer);
var
tmp:PNode;
begin
if Head1=nil then
begin
New(Head1);
tmp:=Head1;
end
else
begin
tmp:=Head1;
while tmp^.next <> nil do
tmp:=tmp^.next;
New(tmp^.next);
tmp:=tmp^.next;
end;
tmp^.next:=nil;
tmp^.num:=k;
end;
procedure ReadFromF(var Head1:PNode;fl:text);
var
k:integer;
begin
reset(fl);
while not EOF(fl) do
begin
while not EOln(fl) do
begin
read(fl,k);
AddToSpis(Head1,k);
end;
readln(f);
end;
close(fl);
end;
procedure Print(Head1:PNode);
begin
if Head1=nil then
begin
writeln('Список пуст!');
exit;
end;
while Head1 <> nil do
begin
write(Head1^.num:4);
Head1:=Head1^.next;
end;
end;
procedure ChangeF(var fl:text;Head1:PNode);
var
tmp:PNode;
begin
rewrite(fl);
tmp:=Head1;
while tmp^.next <> nil do
tmp:=tmp^.next;
write(fl,tmp^.num:5);
while Head1 <> tmp do
begin
write(fl,Head1^.num:5);
Head1:=Head1^.next;
end;
close(fl);
end;
procedure FreeSpis(var Head1:PNode);
var
tmp:PNode;
begin
while Head1 <> nil do
begin
tmp:=Head1;
Head1:=Head1^.next;
Dispose(tmp);
end;
end;
begin
Head:=nil;
assign(f,'c:\t.txt');
writeln('Данный файл');
reset(f);
while not EOF(f) do
begin
read(f,n);
write(n:4);
end;
ReadFromF(Head,f);
writeln;
writeln('Содержимое списка');
Print(Head);
ChangeF(f,Head);
FreeSpis(Head);
writeln;
writeln('Изменнёный файл');
reset(f);
while not EOF(f) do
begin
read(f,n);
write(n:4);
end;
close(f);
end.