Цитата:
Сообщение от Егор1337
Помогите сделать это в моем коде, уже день сижу не могу понять куда и что вставлять что бы не было повторов!
|
Отладил. Получите.
Пара замечаний.
1. Не совсем понятно назначение файла f_file: вроде как он и "не играет" в программе.
2. И кстати, если уж Вы вводите типизированный файл, в данном случае - файл записей, то не следует давать ему расширение ".txt". То есть формально можно, но - зачем?
Код:
uses crt;
const
way='f_file';
waytxt='txt_file.txt';
type
el=record
name,surname,otchestvo,adres,stat,data:string[40];
end;
arr_el=array [1..40] of el;
ft=file of el;
var
f:ft;
r1:el;
r:arr_el;
t:text;
str1:string;
name,surname,otchestvo,stat,adres,data:string[40];
i,j,q:integer;
b,b1:boolean;
Begin
ClrScr;
i:=0;
assign(f,way);
rewrite(f);
assign(t,waytxt);
reset(t);
while not eof(t) do
begin
writeln;
inc(i);
readln(t,name);
readln(t,surname);
readln(t,otchestvo);
readln(t,data);
readln(t,stat);
readln(t,adres);
textcolor(4);
write('ФИО: ');
textcolor(7);
write(surname,' ');
write(name,' ');
writeln(otchestvo);
textcolor(4);
write('ДАТА РОЖД.: ');
textcolor(7);
writeln(data);
textcolor(4);
write('ПОЛ: ');
textcolor(7);
writeln(stat);
textcolor(4);
write('ДОМ. АДРЕС: ');
textcolor(7);
writeln(adres);
r[i].name:=name;
r[i].surname:=surname;
r[i].otchestvo:=otchestvo;
r[i].data:=data;
r[i].stat:=stat;
r[i].adres:=adres;
write(f,r[i]);
end;
close(t);
close(f);
writeln;
textcolor(2);
writeln('Люди с одинаковыми фамилиями:');
textcolor(7);
assign(t,'newtxt.txt');
rewrite(t);
for j:=1 to i-1 do
begin
b1:=true;
for q:=1 to j-1 do
if r[j].surname=r[q].surname then b1:=false;
if b1 then
begin
b:=false;
q:=j;
repeat
inc(q);
if r[j].surname=r[q].surname then b:=true;
until b or (q=i);
if b then
begin
writeln(t,r[j].surname,' ');
writeln(t,r[j].name,' ');
writeln(t,r[j].otchestvo);
writeln(t,r[j].data);
writeln(t,r[j].stat);
writeln(t,r[j].adres);
writeln(t);
textcolor(4);
write('ФИО: ');
textcolor(7);
write(r[j].surname,' ');
write(r[j].name,' ');
writeln(r[j].otchestvo);
textcolor(4);
write('ДАТА РОЖД.: ');
textcolor(7);
writeln(r[j].data);
textcolor(4);
write('ПОЛ: ');
textcolor(7);
writeln(r[j].stat);
textcolor(4);
write('ДОМ. АДРЕС: ');
textcolor(7);
writeln(r[j].adres);
writeln;
{dwadawdawdawdawdawdawdawdawdwadawdwa}
for q:=j+1 to i do
if r[j].surname=r[q].surname then
begin
writeln(t,r[q].surname,' ');
writeln(t,r[q].name,' ');
writeln(t,r[q].otchestvo);
writeln(t,r[q].data);
writeln(t,r[q].stat);
writeln(t,r[q].adres);
writeln(t);
textcolor(4);
write('ФИО: ');
textcolor(7);
write(r[q].surname,' ');
write(r[q].name,' ');
writeln(r[q].otchestvo);
textcolor(4);
write('ДАТА РОЖД.: ');
textcolor(7);
writeln(r[q].data);
textcolor(4);
write('ПОЛ: ');
textcolor(7);
writeln(r[q].stat);
textcolor(4);
write('ДОМ. АДРЕС: ');
textcolor(7);
writeln(r[q].adres);
writeln;
end;
end;
end;
end;
close(t);
readln;
End.