Показать сообщение отдельно
  #15  
Старый 12.02.2009, 18:57
FreeUser FreeUser вне форума
Начинающий
 
Регистрация: 13.08.2008
Сообщения: 119
Репутация: 10
По умолчанию

Замена..Ну да..Я извращенец..Ну что теперь поделаешь?!
Код:
function Search_And_Replace(RichEdit1: TRichEdit; SearchText, ReplaceText: string): Boolean;
var
startpos, Position, endpos: integer;
  begin
    startpos := 0;
with RichEdit1 do
  begin
   endpos := Length(RichEdit1.Text);
  Lines.BeginUpdate;
   while FindText(SearchText, startpos, endpos, [stMatchCase])<>-1 do
  begin
     endpos   := Length(RichEdit1.Text) - startpos;
     Position := FindText(SearchText, startpos, endpos, [stMatchCase]);
     Inc(startpos, Length(SearchText));
     SetFocus;
     SelStart  := Position;
     SelLength := Length(SearchText);
     richedit1.clearselection;
     SelText := ReplaceText;
  end;
Lines.EndUpdate;
  end;
  end;

Вызываем функцию
Код:
Search_And_Replace(Richedit1,что,чем);
и таких вот строчек у меня...уже более 610. И это уже не мой тупизм. Дело тут в том, что при проходе по тексту (который очень похож на ошибки при сканировании, но увы, является совсем другим, т.к. образец приложен, чтобы понять задачу, но исходный файл имеет гораздо больше ошибок, и получен ввиду человеческой ошибки ),

Так вот, при замене списка столько проходов по нему надо чтобы полностью были произведены все замены.
Т.е. в списке скажем есть "ТАКОЙ, ВОТ, ТЕКСТ. .,. . . .,, ... ," И просто заменяя ".." на "." мы рано или поздно опять получем путем сокращения этих ".." в конце еще ".." и по ".." придется искать еще раз. А таких как ".." масок у меня 400. Жесть в общем.
Вложения
Тип файла: rar Текст.rar (4.2 Кбайт, 4 просмотров)
Ответить с цитированием