Я создаю список рейсов, заполняю каждый из них пассажирами и инфой о них... Далее я создаю еще один рейс... Вся инфа о пассажирах, введенная ранее пропадает...

type
Ppass=^reis;
reis=record
name,prizn,punkt:string;
next:ppass;
end;
Preis=^allreis;
allreis=record
number:ppass;
name:string[10];
next:preis;
end;
.........................
procedure add_reis(var pr:preis);
var number:string;
pp,last,nach:preis;
begin
clrscr;
writeln('Na danniy moment sushestvuyut reisi:');
printallreis(pr);
readln;
repeat
clrscr;
gotoxy(1,1); writeln('Vvedite nomer novogo reisa:');
readln(number);
if (number<>'') then
begin
new(pp);
pp^.name:=number;
pp^.next := nil;
if pr = nil then pr := pp else last^.next := pp;
last := pp;
end;
until number='';
clrscr;
writeln('Na danniy moment sushestvuyut reisi:');
nach:=pr;
printallreis(pr);
while assigned(pr) do
begin
pr^.number^.next:=nil;
pr:=pr^.next;
end;
pr:=nach;
end;
procedure add_pass(var pr:preis; var test:boolean);
label repet,end1,repet2;
var ppas,pp,nachpass:ppass;
number,s:string;
b:boolean;
i,n:integer;
nachreis:preis;
begin
repet:
nachreis:=pr;
printallreis(pr);
searchreis(pr,b); {эта процедура возвращает уже нажный мне рейс, тот, куда я буду заносить пассажирова}
if not b then
begin
repeat;
warning;
writeln('Takogo reisa net. y - povtorit, n - vihod');
if readkey='y' then begin goto repet; pr:=nachreis; end
else if readkey='n' then begin textcolor(white); goto end1; end;
until readkey=#1;
end;
begin
pp:=pr^.number;
while pp^.next<> nil do pp:=pp^.next;
new(ppas);
repeat
write('Name: ');
readln(ppas^.name);
until ppas^.name<>'';
repeat
write('Info: ');
readln(ppas^.prizn);
until ppas^.prizn<>'';
repeat
write('Fly to: ');
readln(ppas^.punkt);
until ppas^.punkt<>'';
ppas^.next:=nil;
pp^.next:=ppas;
pp:=pr^.number^.next;
end;
nachpass:=pr^.number^.next;
printpass(pr^.number^.next);
pr^.number^.next:=nachpass;
test:=true;
end1:
pr:=nachreis;
end;
Сообщение отредактировано: QDe5n1K -