uses crt;
type
adres=record{запись-адрес}
ul:string[20];
d,k:integer;
end;
date=record{запись дата поступления}
m,g:integer;
end;
sotr=record{основная запись - сведения о сотрудниках}
f:string[20];
i,o:char;
ad:adres;
dt:date;
end;
var f,g:text;{текстовые файлы}
sp:array[1..100] of sotr;{массив записей}
s,s1:string;
n,t,c,i,j:integer;
begin
clrscr;
assign(f,'file1.txt');{первый файл открываем для чтения}
reset(f);
assign(g,'file2.txt');{второй для записи}
rewrite(g);
n:=0;
while not eof(f) do
begin
n:=n+1;
readln(f,s);{читаем строки, считаем, парсим и в поля записей}
sp[n].f:=copy(s,1,pos(' ',s)-1);{первое слово-фамилия}
delete(s,1,pos(' ',s));{удаляем}
sp[n].i:=s[1];{имя}
sp[n].o:=s[3];{отчество}
delete(s,1,5);{удаляем 5 символов( и.о.пробел )}
sp[n].ad.ul:=copy(s,1,pos(' ',s)-1);{улица}
delete(s,1,pos(' ',s));
s1:=copy(s,1,pos(' ',s)-1);{дом}
val(s1,t,c);{преобразуем в число}
sp[n].ad.d:=t;{в запись}
delete(s,1,pos(' ',s));
s1:=copy(s,1,pos(' ',s)-1);{квартира}
val(s1,t,c);
sp[n].ad.k:=t;
delete(s,1,pos(' ',s));
s1:=copy(s,1,pos(' ',s)-1);
val(s1,t,c);
sp[n].dt.m:=t;{месяц}
delete(s,1,pos(' ',s));
val(s,t,c);
sp[n].dt.g:=t;{остаток строки - год}
end;
close(f);
writeln(g,'Na noyabr 2009 g. prorabotali bolee 5 let:');{заголовок в файл}
writeln(g,'');
for i:=1 to n do
if(sp[i].dt.g<2004){если год меньше 2004 }
or((sp[i].dt.g=2004)and(sp[i].dt.m<=11)){или равен, но месяц ментше}
then
writeln(g,sp[i].f,' ',sp[i].i,'.',sp[i].o,'.',sp[i].ad.ul,' ', {записываем в новый файл}
sp[i].ad.d,' ',sp[i].ad.k,' ',sp[i].dt.m,' ',sp[i].dt.g);
reset(g);{открываем его для чтения, если создали и еще не читали, можно перед этим не закрывать}
while not eof(g) do
begin
readln(g,s);
writeln(s);
end;
close(g);
readln
end.