Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2008, 19:50   #11
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
Сообщение от puporev
Это если заданное слово не является частью другого слова. Например если задано слово СТО, то в словах типа СТОл, проСТО буквы С Т О будут заменены на другие.
Цитата:
Тут встречный вопрос: а можно это как то изменить? Чтобы такого не было.
Можно, примерно так:
Код:
const m=['.',',',':',';','!','?',' '];//константа-множество разделителей+пробел
var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
  s,s1,s2: string;
  i: integer;
begin
  s := RichEdit1.Text+' ';//наш текст+пробел
  s1:=Edit1.Text;//слово, которое нужно заменить
  s2:=Edit2.Text;//слово, которым нужно заменить
  i:=1;
  while i<=length(s) do
    begin
//если находим подряд символы, совпадающие с заданным словом+оно первое или перед ним пробел или разделитеь+после него пробел или разделитель
      if (copy(s,i,length(s1))=s1)and((i=1)or (s[i-1]in m))and(s[i+length(s1)]in m)
      then begin
           delete(s, i, length(s1));//удаляем его
           insert(s2, s, i);//вставляем новое
           i:=i+length(s2);//перепрыгиваем вперед
           end
      else i:=i+1;//если нет продолжаем смотреть строку дальше
   end;
   RichEdit1.Text :=copy(s,1,length(s)-1);//на всякий случай последний пробел уберем
end;
puporev вне форума Ответить с цитированием
Старый 23.09.2008, 17:17   #12
Dr.Badnezz
Ученик
Форумчанин
 
Регистрация: 19.09.2008
Сообщений: 119
По умолчанию

Спасибо!!!!!!!
Dr.Badnezz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена по маске Drain Общие вопросы Delphi 1 14.02.2008 16:08
ЗАмена в мемо Drain Общие вопросы Delphi 2 29.01.2008 16:22
Замена переменных NoName_emaNoN Win Api 4 18.01.2008 09:05
Замена формы . dima2207 Общие вопросы Delphi 2 22.05.2007 06:15
замена текста zetrix Microsoft Office Excel 0 31.10.2006 07:54