uses crt,dos; const namereg:array[1..5] of string[15]= ('ввод данных', 'просмотр', 'запись в файл', 'печать', 'выход'); type igrok=record com,surname:string[30]; time:real; goal:byte; end; var key,sym:char; regime,j,i:integer; comname:string; comands:array[1..20] of igrok; k:byte; procedure enter_one_player(var one_player_data:igrok); begin with one_player_data do begin write('Введите команду игрока - '); readln(com); write('Ведите фамилию игрока - '); readln(surname); write('Введите время попадания(мин.сек): '); readln(time); write('Введите очки за мяч: '); readln(goal); end; end; procedure enter_command; var j:byte; begin clrscr; j:=0; k:=0; repeat j:=j+1; k:=k+1; enter_one_player(comands[j]); write('Вы хотите продолжить ввод? Y/N:'); repeat readln(sym); until ( sym='Д') or( sym='Н') or ( sym='Y') or ( sym='N') or ( sym='y') or ( sym='n') or ( sym='д') or ( sym='н') ; until ( sym='N') or ( sym='n') or ( sym='н') or ( sym='Н') ; end; procedure print_table(k:integer); var i,j:integer; f:text; begin write('введите имя команды - '); readln(comname); assign(f,comname); rewrite(f); writeln(f,'таблица по баскетболу'); writeln(f); for i:=1 to k do with comands[i] do begin write(f,com,' '); write(f,surname:25-length(surname)); writeln(f,'',time:2:2,'','-',goal); end; close(f); readln; end; procedure read_file( var j:byte; var comname:string); var f: file of igrok; comname1:string[30]; begin textbackground(0); textcolor(15); clrscr; j:=0; write('Укажите название комманды - '); readln(comname1); if comname1<>comname then begin comname:=comname1; assign(f,comname+'.dat'); {$i-} reset(f); {$i+} if ioresult=0 then begin while not eof(f) do begin j:=j+1; read(f,comands[j]); end; close(f); end; end; end; procedure save(j:byte); var f:file of igrok; i:byte; namef:string; begin write('введите название таблици для инициализации файла - '); readln(namef); assign(f,namef); rewrite(f); for i:=1 to j do write(f,comands[i]); close(f); end; procedure Menu(var pos:integer); var i:integer; procedure Cursor(on:boolean); var r: registers; begin r.ah:=1; if on then begin r.ch:=6; r.cl:=7; end else r.ch:=$20; intr(16,r); end; begin textbackground(11); clrscr; textbackground(1); WINDOW(32,8,49,16); clrscr; textcolor(7); gotoxy(1,1); write('╔════════════════╗'); for i:=1 to 7 do begin gotoxy(1,i+1); write('║ ║'); end; WINDOW(32,8,49,17); gotoxy(1,9); write( '╚════════════════╝'); for i:=1 to 5 do begin gotoxy(3,i+2); write(namereg[i]); end; textbackground(7); textcolor(1); gotoxy(3,pos+2); write(namereg[pos]); cursor(false); repeat key:=readkey; if ord(key)<>13 then begin textbackground(9); textcolor(7); gotoxy(3,pos+2); write(namereg[pos]); if ord(key)=0 then begin key:=readkey; if ord(key)=80 then if pos=5 then pos:=1 else pos:=pos+1 else if ord(key)=72 then if pos=1 then pos:=5 else pos:=pos-1; end; textbackground(7); textcolor(1); gotoxy(3,pos+2); write(namereg[pos]); end until key=chr(13); WINDOW(1,1,80,25); cursor(true); textbackground(0); textcolor(15); clrscr; end; begin clrscr; regime:=1; repeat menu(regime); case regime of 1: begin enter_command; save(k) ; end; 2: begin read_file(k ,comname); print_table(k); end; 3:save(k) ; 4:writeln('kljs'); 5:writeln('dhgfh'); end; until regime=5; end.