Дан типизированный файл, содержащий целые числа. Удалить все нули из файла — Pascal(Паскаль)

uses crt;
var f:file of integer;
    n,i,a,j,k:integer;
begin
clrscr;
randomize;
assign(f,'file1');
rewrite(f);
write('Kol. chis. n=');
readln(n);
for i:=1 to n do
 begin
  a:=random(5);
  write(f,a);
 end;
writeln('Исходный файл:');
reset(f);
while not eof(f) do
 begin
  read(f,a);
  write(a,' ');
 end;
writeln;
close(f);
reset(f);
k:=0;i:=0;
while i<=filesize(f)-1 do
  begin
  seek(f,i);
  read(f,a);
  if a=0 then
   begin
    k:=k+1;
    for j:=i to filesize(f)-2 do
     begin
      seek(f,j+1);
      read(f,a);
      seek(f,j);
      write(f,a);
    end;
   end
  else i:=i+1;
  end;
seek(f,filesize(f)-k);
truncate(f);
close(f);
writeln('Измененный файл:');
reset(f);
for i:=0 to filesize(f)-1 do
 begin
  read(f,a);
  write(a,' ');
 end;
close(f);
readln
end.

Leave a Comment

32 − 23 =