Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Динамические данные

Автор: Lenivec Sid 20.11.2007 19:43

Одно из возможных представлений "длинного" текста - это разделить его на строки ровной длины и создать массив ссылок на эти строки. Используя данное представление текста написать программу, которая печатает из входного файла 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