type
tip1=record
n:byte; {номер рейса }
town,time0,time1:string; {город, время отправления и прибытия}
freeplace:integer; {количество свободных мест }
end;
var
d:tip1;
i,max_d:integer;
f:file of tip1;
{ввод данных и сохранение в файл}
PROCEDURE input_d;
BEGIN
write('Введите количество рейсов: ');
readln(max_d);
writeln;
writeln('* * * Заполнение данных о рейсах * * *');
writeln;
{открыть или создать файл}
{$I-}
assign(f,'data.dat');
reset(f);
seek(f,filesize(f));
{$I+}
if ioresult<>0 then rewrite(f);
for i:=1 to max_d do
begin
writeln('----- ',i,' -----');
write('Введите номер рейса: ');
readln(d.n);
write('Введите город прибытия: ');
readln(d.town);
write('Введите время отправления: ');
readln(d.time0);
write('Введите время прибытия: ');
readln(d.time1);
write('Введите количество свободных мест: ');
readln(d.freeplace);
write(f,d);
end;
close(f);
writeln;
writeln('Данные были сохранены в файл!');
readln;
END;
{вывод данных из файла по введенному названию города}
PROCEDURE view_d;
var
x:string;
tmp_d:tip1;
BEGIN
{открыть файл для чтения информации}
{$I-}
assign(f,'data.dat');
reset(f);
{$I+}
if ioresult<>0 then
begin
writeln('Файл не найден!');
readln;
exit;
end;
write('Введите название города: ');
readln(x);
writeln;
while not eof(f) do
begin
read(f,tmp_d);
if tmp_d.town=x then {сравнить названия городов}
begin
writeln('Номер рейса: ',tmp_d.n);
writeln('Город: ',tmp_d.town);
writeln('Время отправления: ',tmp_d.time0);
writeln('Время прибытия: ',tmp_d.time1);
writeln('Количество свободных мест: ',tmp_d.freeplace);
writeln('--------------------------------');
end;
end;
close(f);
writeln('Поиск завершен!');
readln;
END;
{***** основная программа *****}
BEGIN
input_d;
view_d;
END.
* переменная d — для хранения данных;
* переменная max_d — количество записей;
* переменная i — для цикла.