Сформировать файл записей "COMPETITION.DAT" из фамилий участников соревнований, даты (день, месяц и год) и места ее проведения
Категория: Delphi/Pascal
2012-01-16 21:24:21
Используя сформированный файл, вывести фамилии тех, кто был на соревнованиях в заданном городе в заданном году.
code: #pascal
Program PascalGuru; uses crt; procedure MENU; forward; procedure zapisi; var f:text; n,i:integer; deni,god:integer; fam,mesiac,mesto:string; begin assign(f,'COMPETITION.DAT'); rewrite(f); clrscr; write('Skoliko uchastnikov xotite zapisati? '); readln(n); for i:=1 to n do begin clrscr; writeln('Zapisyvaem ',i,' uchastnika:'); write('Familia: '); readln(fam); writeln;writeln('Data:'); writeln('Deni: '); readln(deni); writeln('Mesiac: '); readln(mesiac); writeln('God: '); readln(god); writeln('Mesto provedenia:'); readln(mesto); writeln(f,fam,' ',deni,'.',mesiac,'.',god,' ',mesto); end; writeln('Fail uspeshno zapisan...'); readln; close(f); MENU; end; {-----------------------} procedure readALL; var f:text; s:string; begin assign(f,'COMPETITION.DAT'); reset(f); clrscr; writeln('Vse uchastniki:'); writeln; while (not eof(f)) do begin readln(f,s); writeln(s); end; readln; close(f); MENU; end; {-----------------------} procedure readGOD; var f:text; s,fam,mesto,mestoR:string; p,god,godR,code:integer; b:boolean; begin assign(f,'COMPETITION.DAT'); reset(f); clrscr; writeln('Vyvod Famili uchastnikov po mestu i godu:'); writeln; write('Vvedite Gorod provedeniya: '); readln(mestoR); write('Vvedite GOD provedeniya: '); readln(godR); clrscr; writeln('uchastniki ',godR,' goda, s goroda "',mestoR,'":' ); writeln; b:=false; while (not eof(f)) do begin readln(f,s); p:=pos(' ',s); fam:=copy(s,1,p-1); delete(s,1,p); p:=pos('.',s); delete(s,1,p); p:=pos('.',s); delete(s,1,p); p:=pos(' ',s); val(copy(s,1,p-1),god,code); mesto:=copy(s,p+1,length(s)-p); if (mesto=mestoR) and (god=godR) then begin writeln(fam); b:=true; end; end; if not b then writeln('Takix uchastnikov net...'); readln; close(f); MENU; end; {-----------------------} procedure MENU; type op=0..3; var option:op; begin clrscr; writeln; writeln('MENU:'); writeln; writeln('1) Zapisi v fail'); writeln('2) Procitati vesi fail'); writeln('3) Procitati opredelennyx uchastnikov'); writeln; writeln('0) Exit'); readln(option); if option=1 then zapisi; if option=2 then readALL; if option=3 then readGOD; end; {-----------------------} begin MENU; end.
Поделиться: