Программа осуществляет поиск по введённой фамилии ( во 2:begin) и находит первую запись и выходит из поиска, а мне нужно чтобы поиск осуществлялся до конца.
program lab_9; uses crt; label na4; const mas:array[1..6]of string=( '# Atele: ', '# Kvitancii: ', 'Data oform zakaza: ', 'Data vida4i zakaza: ', 'FIO Mastera: ', 'Vid izdeliya: '); var fail:text; o,zap,i,j,k:integer; st,stp:string; v:byte; begin assign(fail,'BD.txt');rewrite(fail);close(fail); zap:=0; na4: clrscr; gotoxy(15,5); write('Dly dobavleniya zapisi v BD vvedite #1#'); gotoxy(15,6);write('Dly poiska po BD vvedite #2#'); gotoxy(15,7);write('Dly prosmotra vsey BD vvedite #3#'); gotoxy(15,8);write('Dly VIHODA iz programmi vvedite #4#'); gotoxy(20,10);textcolor(2);write('Vibor: ');readln(v); clrscr; case v of 1:begin append(fail); writeln('Dly dobavleniya zapisi v BD vvedite:'); for i:=1 to 6 do begin write(mas[i]); readln(st);write(fail,st+'|'); end; writeln(fail); close(fail); writeln('Zapis dobavlena');zap:=zap+1; end; 2:begin write('Vvedite FIO mastera:'); readln(st); reset(fail); k:=0; for i:=1 to zap do begin readln(fail,stp); if pos(st,stp)<>0 then begin k:=1; break end; end; if k=0 then begin textcolor(4); writeln('!! Takoy zapisi net!!'); end else begin i:=1; delete(st,1,100); for j:=1 to 6 do begin while stp[i]<>'|' do begin st:=st+stp[i]; i:=i+1; end; writeln(mas[k]+st);k:=k+1; delete(st,1,100); i:=i+1 end; end; close(fail); end; 3:begin reset(fail); delete(st,1,100); for o:=1 to zap do begin writeln('Pokazat',o,'-yu zapis');readkey; readln(fail,stp); i:=1;k:=1; for j:=1 to 6 do begin while stp[i]<>'|' do begin st:=st+stp[i]; i:=i+1; end; writeln(mas[k]+st);k:=k+1; delete(st,1,100); i:=i+1; end; end; end; 4:exit end; write('Dly prodolweniya nawmite na lubuy klaviwy'); readkey; goto na4; end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.