Показать сообщение отдельно
Старый 14.12.2015, 12:50   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Егор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.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070