Ну тоді вже пишіть ось так:
procedure delete; var name,date:string; nak, price, kst,j,b:integer; f1,f:text; begin assign
(f,'new.txt') ; assign (f1,'trash.txt'); reset (f); rewrite (f1); repeat clrscr; write
('введiть номер запису: '); readln (b); if b<>0 then begin reset (f); rewrite(f1); while not
eof(f) do begin readln(f,nak); readln(f,name); readln(f,kst); readln(f,date); readln(f,
price); if nak<>b then begin writeln(f1,nak); writeln(f1,name); writeln(f1,kst); writeln(f1,
date); writeln(f1,price); end; textcolor(8); writeln ('товаp видалено'); end; textcolor(8);
writeln('видалити iнший товаp? 1 - так, 0 - нi?'); readln(j); until j=0; close (f); close (f1
); erase(f); rename(f1,'new.txt'); end;
Все одно код нечитаємий, а місця займає менше.