чуть-чуть причесал. Запускается. функционал в работе не проверял.
код целиком -
pasajiri_2.rar
начало кода теперь выглядит так:
Код:
program Passajiri;
uses crt;
const
NameOfDataFile = 'd:\passajir.dat';
type
passajir = record
fam: string[10];
im: string[8];
otchestvo: string[10];
nom_reys: integer;
kol_bag: integer;
obshiy_ves: integer;
KDP: integer;
end;
var
i, k, n: integer;
f: file of passajir;
a: passajir;
q: char;
function isNotFileExist(fn: string): boolean;
begin
isNotFileExist := false;
if not FileExists(fn) then begin
isNotFileExist := true;
textcolor(LightRed);WriteLn('Файл ' + fn + ' не создан. Сначала создайте файл!');
WriteLn;textcolor(LightGreen);
writeln('Нажмите любую клавишу для возврата в меню');
readkey;
end;
end;
procedure vvod;
begin
clrscr;
assign(f, NameOfDataFile);
rewrite(f);
repeat
textcolor(11);
writeln('|Введите данные пасажира: ');
with a do
begin
textcolor(12);
write('|Введите фамилию ............................|');readln(fam);
write('|Введите имя .................................|');readln(im);
write('|Введите отчество ............................|');readln(otchestvo);
write('|Введите номер рейса ........................|');readln(nom_reys);
write('|Введите Количество багажных мест ...........|');readln(kol_bag);
write('|Введите общий вес багажа*....................|');readln(obshiy_ves);
end;
write(f, a);
textcolor(14);
writeln(' ');
write('Для продолжения Ввода данных нежмите ENTER, Для завершения нажмите - 0:', ' ', q);
readln(q);
until q = '0';
close(f);
end;
procedure vyvod;
var
i: integer;
begin
if isNotFileExist(NameOfDataFile ) then Exit;
assign(f, NameOfDataFile);
reset(f);
clrscr;
textcolor(10);
writeln('________________________________________________________________________________');
textcolor(11);
writeln('| Фамилия | Имя | Отчество | Номер рейса* | Кол.баг.мест | Общий вес |');
textcolor(10);
writeln('________________________________________________________________________________');
for i := 1 to filesize(f) do
begin
textcolor(10);
read(f, a);
writeln('|', a.fam:9, '|', a.im:7, '|', a.otchestvo:10, '|', a.nom_reys:13, '|', a.kol_bag:16, '|', a.obshiy_ves:11, '|');
textcolor(10);
writeln('________________________________________________________________________________');
end;
close(f);
textcolor(14);
writeln('Нажмите ENTER для выхода из просмотра файла...*');
readln;
end;
procedure dobavit;
begin
clrscr;
if isNotFileExist(NameOfDataFile ) then Exit;
assign(f, NameOfDataFile);
reset(f);
seek(f, filesize(f));
repeat
textcolor(11);
writeln('Введите данные багажа*¦*');
with a do
begin
textcolor(12);
write('Введите фамилию ............................|');readln(fam);
write('Введите имя ................................|');readln(im);
write('Введите отчество ...........................|');readln(otchestvo);
write('Введите номер рейса ........................|');readln(nom_reys);
write('Введите колочество багажных мест ...........|');readln(kol_bag);
write('Введите общий вес ..........................|');readln(obshiy_ves);
end;
write(f, a);
textcolor(14);
writeln(' ');
write('Для продолжения Ввода данных нажмите ENTER, Для завершения - 0:', ' ', q);
readln(q);
until q = '0';
close(f);
end;
procedure udalenie;
var
w, i: integer;
begin
if isNotFileExist(NameOfDataFile ) then Exit;
assign(f, NameOfDataFile );
reset(f);
clrscr;
textcolor(11);
writeln('________________________________________________________________________________');
textcolor(10);
writeln('| Фамилия | Имя | Отчество | Номер рейса* | Кол.баг.мест | Общий вес |');
textcolor(11);
writeln('________________________________________________________________________________');
for i := 1 to filesize(f) do
begin
textcolor(10);
read(f, a);
writeln('|', a.fam:9, '|', a.im:7, '|', a.otchestvo:10, '|', a.nom_reys:13, '|', a.kol_bag:16, '|', a.obshiy_ves:12, '|');
textcolor(11);
writeln('________________________________________________________________________________');
end;
reset(f);
textcolor(14);
write('Ввести номер записи для удаления - ');
readln(w);
seek(f, filesize(f) - 1);
read(f, a);
seek(f, w - 1);
write(f, a);
seek(f, filesize(f) - 1);
truncate(f);
close(f);
begin
assign(f, NameOfDataFile);
reset(f);
clrscr;
textcolor(11);
writeln('________________________________________________________________________________');
textcolor(10);
writeln('| Фамилия | Имя | Отчество | Номер рейса* | Кол.баг.мест | Общий вес |');
textcolor(11);
writeln('________________________________________________________________________________');
for i := 1 to filesize(f) do
begin
textcolor(10);
read(f, a);
writeln('|', a.fam:9, '|', a.im:7, '|', a.otchestvo:10, '|', a.nom_reys:13, '|', a.kol_bag:16, '|', a.obshiy_ves:11, '|');
textcolor(11);
writeln('________________________________________________________________________________');
end;
close(f);
textcolor(14);
writeln(' ');
writeln('Нажмите ENTER для выхода...*');
readkey;
end;
end;
......
p.s. в типе "passajir" я оставил описание поля
хотя оно нигде не используется. Подозреваю, что это какой-то рудимент, оставшийся от предыдущего кода.
И это поле желательно удалить целиком.