program lol; uses crt, windos; label metka1, metka2, metka3, metka4, metka5, metka6; const old='price.dat'; type Pprice=record Pname:string[20]; Pvalue:real; end; var price:file of Pprice; newprice:file of Pprice; p:pprice; i,n,z,x:integer; procedure vivod; begin reset(price); writeln; writeln('текущие записи: ':25); writeln; while not eof(price) do begin read(price,p); write(p.pname:15); writeln(p.pvalue:10:2); writeln; end; close(price); end; begin clrscr; begin {' otkritie '} setcurdir('D:'); assign(newprice,'D:\newprice.dat'); assign(price,'D:\price.dat'); end; begin metka5: writeln('меню':20); writeln('открыть созданный файл - 0':30); writeln('создать новый файл - 1':30); writeln('добавить запись - 2':30); writeln('редактировать запись - 3':30); writeln('удалить запись - 4':30); write('выйти - 5 ':32); readln(i); if i=0 then begin clrscr; reset(price); writeln; writeln('файл открыт':20); vivod; goto metka5; end; if i=1 then begin clrscr; rewrite(price); writeln('файл создан'); goto metka5; end; if i=2 then goto metka1; if i=3 then goto metka2; if i=4 then goto metka3; if i=5 then goto metka6; end; begin {' dobavlenie '} metka1: reset(price); seek(price,filesize(price)); write('введите название товара '); read(p.pname); write('введите цену '); read(p.pvalue); write(price,p); write('добавить еще запись? да - 1, нет - 0 '); readln(n); if n=1 then goto metka1; close(price); goto metka4; end; begin {' i3menenie '} metka2: reset(price); write('введите номер строки для редактирования '); readln(i); seek(price,i-1); write('введите название товара '); read(p.pname); write('введите цену '); read(p.pvalue); write(price,p); write('еще редактировать? да - 1, нет - 0 '); readln(n); if n=1 then goto metka2; close(price); clrscr; goto metka4; end; begin {' ydalenie '} metka3: setcurdir('D:'); reset(price); rewrite(newprice); write('введите номер строки для удаления '); readln(i); setcurdir('D:'); while not eof(price) do begin read(price,p); if filepos(price)<>i then write(newprice,p); end; close(newprice); close(price); erase(price); rename(newprice,old); assign(price,'D:\price.dat'); write('еще удалить? да - 1, нет - 0 '); readln(n); if n=1 then goto metka3; goto metka4; end; begin {' vixod k menu '} metka4: clrscr; vivod; write('вывести меню - 1, выход - 0 '); readln(n); if n=1 then goto metka5; end; metka6: end.