Дан файл содержащий несколько строк, на указанную позицию вставить пустую строку.
program fail;
const
name_f = 'c:\data.txt'; {файлы будут созданы на диске c:\}
name_f1= 'c:\temp.txt';
procedure create_f(n1 : integer);
var
f : text;
i : integer;
s, s1 : string;
begin
assign(f, name_f); {связывем ф. п. с файлом}
rewrite(f); {открываем для записи}
for i := 1 to n1 do {генерируем файл}
begin
str(i, s1);
s := 'stroka ' + s1;
writeln(f, s);
end;
close(f);
end;
procedure wiwod; {процедура выводит файл}
var
f : text;
i : integer;
s : string;
begin
assign(f, name_f); {связывем ф. п. с файлом}
reset(f); {открываем файл для чтения}
while not eof(f) do {читаем файл пока не достигнем конца}
begin
readln(f, s);
writeln(s);
end;
close(f);
end;
var
s, s1 : string;
n : integer;
i : integer;
f, f1 : text; {файловая переменная}
begin
writeln('Введите общее кол-во строк в файле.');
readln(n);
create_f(n); {автоматичеси генерируем файл}
{для контроля выводим, что получилось }
wiwod;
writeln('Введите номер строки.');
readln(n);
assign(f1, name_f1); {Используем временный файл}
assign(f, name_f);
rewrite(f1); {временный файл открываем на занись}
reset(f); {файл data.txt на чтение}
i := 1;
while not eof(f) do {читаем из data.txt данные построчно}
begin
if i = n then writeln(f1, ' ') {дошли до номера строки перед которой надо
вставить}
else {пустую строку. вставляем пустую строку}
begin
readln(f, s);
writeln(f1, s);
end;
inc(i); {увеличиваем счетчик строк на 1}
end;
close(f); close(f1); {закрываем оба файла}
erase(f); {удаляем старый файл data.txt}
rename(f1, name_f); {переименовываем temp.txt в data.txt}
wiwod; {выводим, что получилось}
readln;
end.