program pr{Дан файл, содержащий текст на русском языке.В предложениях
некоторые из слов записаны подряд нескодлько раз подряд(предложение
заканчивается точкой или знаком восклицания). Получить в новом файле
отредактированный текст, в котором удалены повторы.};
var f,g:text;
prep:set of char;
words:array [1..50] of string;
pw:array[1..50] of integer;
filename,filename1,s,s1,wsp:string;
n,i,j,t,t1,n1:integer;
begin prep:=['.',',','!',' '];
write('Введите имя файла:');
readln(filename);
assign(f,filename);
assign(g,'textg.txt');
rewrite(g);
reset(f);
while not(eof(f)) do
begin readln(f,s); {s- строка}
j:=1; words[j]:='';n1:=1;
for i:=1 to length(s) do
begin
if s[i] in prep
then begin pw[j]:=n1;
j:=j+1;
words[j]:='';
n1:=i+1
end
else words[j]:=words[j]+s[i];
end;
n:=j+1;
for j:=1 to n-1 do
for i:=j+1 to n do
if words[i]=words[j]
then begin wsp:=' ';
wsp:=copy(wsp,1,length(words[j]));
delete(s,pw[i],length(words[i]));
insert(s,wsp,pw[i]);
end;
writeln(g,s)
end;
close(g);
{вывод содержимого полученного файла на экран}
reset(g);
while not(eof(g)) do
begin readln(g,s);
writeln(s)
end;
close(g)
end.