Одно из возможных представлений "длинного" текста - это разделить его на строки ровной длины и создать массив ссылок на эти строки. Используя данное представление текста написать программу, которая печатает из входного файла F последовательность букв до первой точки и формирует из них текст добавляя после i-той строки копию j - той.
Program Dynmem;
uses CRT;
const n=20;
type stroka=string [n];
var
   F:text;
   FText: array [1..100] of ^stroka;
   i,j:integer;
   Flag: boolean;
   c: char;
begin
     clrscr;
     assign (F,'dat.txt');
     reset(F);
     Flag:=False;
     j:=1;
     New(FText[1]);
     repeat
           read(F,c);
           if c='.'
           then
           begin
                Flag:=True;
                FText[j]^:=FText[j]^+c;
                Writeln (FText[j]^);
                Dispose(FText[j]);
                end
                else if Length(FText[j]^)<n
                then FText[j]^:=FText[j]^+c
                else
                begin
                     New(FText[j+1]);
                     if c <> ' '
                     then begin
                          i:=n;
                          while FText[j]^[i]<>' ' do i:=i-1;
                          FText[j+1]^:=Copy(FText[j]^,i+1,n)+c;
                          Delete(FText[j]^,i+1,n);
                     end;
                Writeln(FText[j]^);
                readln;
                Dispose(FText[j]);
                j:=j+1;
           end;
       until Flag;
       Close(F);
   end.


Не пойму как после I-той строки вставить копию J-той. nea.gif