Тут уже предлагали использовать TStringList, при работе с текстом самый оптимальный вариант, дело в том что весь текст из *.txt грузится в оперативную память и дальнейшие процессы проходят там.
Код:
//s1 - исходный текст
//s2 - отредактированы
repeat
a := Pos('..',s1);
if a > 0 then begin
s2 := s2 + copy(s1,1,a-1) + '.';
deletestr(s1,1,a);
end;
until until a = 0;