Вот...
Это всё, что я нарешал...
Код
Program P2_3_FILE;
Type
tf= file of integer;
Var
f: tf;
siz:longint;
{Ввод файла=================================================}
Procedure InputF (var ff:tf);
Var
x:integer;
Begin
writeln ('Создание файла. Конец файла = 777');
rewrite (ff);
write ('Ввод компоненты ');
readln (x);
while x<>777 do
begin
write (ff,x);
write ('Ввод компоненты ');
readln (x)
end;
close (ff);
End;
{Вывод файла================================================}
Procedure OutputF (var ff:tf);
Var
x: integer;
Begin
writeln ('Вывод файла ');
reset (ff);
while not eof (ff) do
begin
read (ff,x);
write (x, ' ')
end;
writeln;
close (ff);
writeln ('Вывод закончен');
End;
{Удаление нулей=============================================}
Procedure DelOf0 (var ff:tf);
Var
x,y: integer;
n: byte;
fs: longint;
Begin
reset (ff);
fs:= filesize (ff);
while not eof (ff) do
begin
read (ff,x);
if x=0
then
begin
n:= filepos (ff)-1;
for i:=n to fs do
begin
seek (ff,i);
read (ff,x);
seek (ff, i-1);
write (ff,x)
end
end
end;
close (ff)
End;
{Добавление нулей===========================================}
Procedure Add0 (var ff:tf; var fs:longint; q: integer);
Begin
reset (ff);
seek (ff, filesize (ff));
while filesize (ff)<=fs do
begin
write (ff,q)
end;
close (ff)
End;
{Основная программа=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}
BEGIN
Assign (f, 'fx.d');
InputF (f);
OutputF (f);
DelOf0 (f);
Add0 (f,siz,0);
OutputF (f)
END.
Тут где-то ошибка намбер 100: Диск рид еррор!!!
Найдите, пож-та, если не трудно.
З.Ы. Прогу проверял мой препод по информатике. На первый взгляд ничего не сказал. И на второй тоже. Сказал просто: "Сам думай!" (А ведь прав!!!)