Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.03.2012, 12:43
terehovk terehovk вне форума
Новичок
 
Регистрация: 29.08.2008
Сообщения: 51
Репутация: 10
По умолчанию Замена текста в TRichView

У меня есть документ который загружен в RichViewEdit. Мне нужно заменить там некоторые слова на другие (например, все "abc" на "абв" или "привет" на "пока"), но должно сохранится форматирование.

Последний раз редактировалось terehovk, 30.03.2012 в 15:05.
Ответить с цитированием
  #2  
Старый 30.03.2012, 13:30
PS11011010 PS11011010 вне форума
Новичок
 
Регистрация: 30.03.2012
Сообщения: 98
Репутация: 282
По умолчанию

А пробовал AnsiReplaceStr?

Код:
x:TStringList;

x.Text:=AnsiReplaceStr(x.Text,pansichar('Текст, который хочешь заменить'),pansichar('Новый текст'));
Ответить с цитированием
  #3  
Старый 30.03.2012, 15:05
terehovk terehovk вне форума
Новичок
 
Регистрация: 29.08.2008
Сообщения: 51
Репутация: 10
По умолчанию

компонент RichViewEdit
Ответить с цитированием
  #4  
Старый 30.03.2012, 15:59
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

PHP код:
procedure SearchAndReplaceRichTRichEditInSearch,InReplaceString );
var
 
X,ToEndInteger;
begin
 X 
:= 0;
 
ToEnd := LengthRich.Text );
 
:= Rich.FindTextinSearch,X,ToEnd,[] );

 While 
<> -Do Begin
 Rich
.SelStart := X;
 
Rich.SelLength := LengthinSearch );
 
Rich.SelText := inReplace;
 
:= Rich.FindTextinSearch,LengthinReplace ),ToEnd,[] );
 
End;
end
такое работает?
Ответить с цитированием
  #5  
Старый 30.03.2012, 17:03
terehovk terehovk вне форума
Новичок
 
Регистрация: 29.08.2008
Сообщения: 51
Репутация: 10
По умолчанию

еще раз говорю компонент не RichEdit а RichViewEdit
Ответить с цитированием
  #6  
Старый 30.03.2012, 21:44
terehovk terehovk вне форума
Новичок
 
Регистрация: 29.08.2008
Сообщения: 51
Репутация: 10
По умолчанию

я заменяю так
Код:
RichViewEdit1.BeginUpdate;
    try
        for i := 1 to 3 do
        begin
        //перемещение в начало документа
        ItemNo:=0;
        Offs:=RichViewEdit1.GetOffsBeforeItem(ItemNo);
        RichViewEdit1.SetSelectionBounds(ItemNo,Offs,ItemNo,Offs);

        while RichViewEdit1.SearchText('$'+a[i][1]+'#', [rvseoDown,rvseoWholeWord]) do
            RichViewEdit1.InsertText(a[i][2]);
        end;
    finally
        RichViewEdit1.EndUpdate;
    end;

но форматирование удаляется
Ответить с цитированием
  #7  
Старый 30.03.2012, 21:57
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Попробуй SaveRTF, но при этом теряются гиперлинки.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #8  
Старый 30.03.2012, 22:04
PS11011010 PS11011010 вне форума
Новичок
 
Регистрация: 30.03.2012
Сообщения: 98
Репутация: 282
По умолчанию

Есть замечательная конструкция
Код:
format; while SearchText('some_to_search', [rvseoDown]) do InsertText('some_to_replace',False);
, заменяющая все вхождения искомой подстроки во всем документе.
Ответить с цитированием
  #9  
Старый 30.03.2012, 22:14
terehovk terehovk вне форума
Новичок
 
Регистрация: 29.08.2008
Сообщения: 51
Репутация: 10
По умолчанию

PS11011010, при этом форматирование того слова каторое я заменил изменятся
P.S. http://otvety.google.ru/otvety/threa...a53689e09e7c38 я читал

Последний раз редактировалось terehovk, 30.03.2012 в 22:17.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:17.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025