uses crt;
type stud=record
fio:string[15];
tp:byte;
info:byte;
matan:byte;
end;
VAR f:text; f1:file of stud; p:stud;
procedure creat_arh;
var
t1,t2,t3:byte;
begin
reset(f);
rewrite(f1);
while not eof(f) do
with p do
begin
readln(f,fio,tp,info,matan);
if tp=2 then t1:=0
else t1:=tp;
if info=2 then t2:=0
else t2:=info;
if matan=2 then t3:=0
else t3:=matan;
end;
close(f);
close(f1);
writeln('enter!!!');
readln;
end;
procedure write_arh;
var
i:integer;
begin
reset(f1);
writeln('Otsenki');
Writeln('===============================');
writeln(':fio studenta:tp:info:matan:');
writeln('================================');
while not eof(f1) do
begin
read(f1,p);
with p do
writeln(':',fio,':',tp:7,':',info:7,':',matan:7,':');
end;
writeln('===============================');
close(f1);
writeln('enter!!!');
readln;
end;
procedure U_stud;
var n,k,i,j:integer;
begin
reset(f1);
i:=0;
n:={хочу найти кол-во компонентов в файле записей, но не знаю как, если без
filesize}-1;
k:=0;
while i<=n do
begin
seek(f1,i);
read(f1,p);
with p do
if (t1=0 and t2=0 and t3=0) then
begin
for j:=i to n-1 do
begin
seek(f1,j+1);
read(f1,p);
seek(f1,p);
seek(f1,j);
write(f1,p);
end;
seek(f1,n);
{ а как удалить без truncate не знаю
n:=n+1;
k:=k+1;}
end
else i:=i+1;
end;
close(f1);
end;
BEGIN
assign (f,'d:\stud.txt');
creat_arh;
write_arh;
U_stud;
write_arh;
end.
текстовый файл и файл записей |