Пример использования файлов
Задача. В текстовом файле f.txt записаны (вперемешку) целые числа: поровну отрицательных и положительных. Используя только один вспомогательный файл, переписать в текстовый файл h.txt все эти числа так, чтобы:
1. порядок отрицательных чисел был сохранен;
2. порядок положительных чисел был сохранен;
3. любые два числа, стоящие рядом, имели разные знаки.
Решение
Если бы нам разрешили использовать два вспомогательных файла, мы бы просто переписали все положительные числа в один из них, а все отрицательные - в другой. А затем объединили бы два этих файла. В нашем же случае придется переписать во вспомогательный файл только положительные числа. Затем при "сборке" мы будем считывать из вспомогательного файла "все подряд", а из исходного - только отрицательные числа.
Реализация.
program z1;
var f,g,h: text;
k: integer;
begin
assign(f,'f.txt');
assign(g,'g.txt');
assign(h,'h.txt');
{Переписываем положительные числа в доп.файл}
reset(f);
rewrite(g);
while not eof(f) do
begin read(f,k);
if k>0 then write(g,k,' ');
end;
{Собираем числа в новый файл h.txt}
reset(f); {Возвращаем указатель на начало файла f}
reset(g);
rewrite(h);
while not eof(g) do
begin read(g,k);
write(h,k,' ');
repeat
read(f,k)
until k<0;
write(h,k,' ');
end;
close(f);
close(g);
close(h);
end.