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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.08.2010, 17:16   #1
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию Поиск и замена в RE, подправить код

здравствуйте! написал программу для поиска и замены слова в RE:
var e:integer; a:string;
Код:
begin
Richedit1.lines.add('How do you do');
a:=Richedit1.text;
e:=pos('you',a);
delete(a, e, 3);
insert('XXXX', a, e);
richedit1.Text:=a;
Одна лишь только проблемма: если в cтроке будет 'you you you', то он заменяет только одно слово, первое(на ХХХХ). А как сделать так чтобы он заменял их все: 'you you you' = 'xxxx xxxx xxxx'.


И заодно вопрос в догонку, создаю программы с двумя формами. Как сделать так чтобы допустим, в онклике по кнопке:
Код:
Form2.show;
И форма показывалась как реальное окно, для которого наряду с остальными программами, выделено место в Панели задач "Пуск"?
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 09.08.2010, 17:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
RichEdit1.Lines.Text:=StringReplace(RichEdit1.Lines.Text,'you you you','xxxx xxxx xxxx',[rfreplaceall]);
Подойдет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.08.2010, 17:27   #3
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

неа, а если вдруг понадобится:
Richedit1.text:=edit1.text, где может быть 'you you you you you you'. Как их всех тогда ковертировать?...
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 09.08.2010, 17:31   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как их всех тогда ковертировать?...
Точно так же. См. в хелпе функцию StringReplace
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.08.2010, 17:31   #5
Kolik317
Пользователь
 
Регистрация: 14.08.2009
Сообщений: 64
По умолчанию

Код:
RichEdit1.Lines.Text:=StringReplace(RichEdit1.Lines.Text,'you','xxxx',[rfreplaceall]);
Kolik317 вне форума Ответить с цитированием
Старый 09.08.2010, 17:32   #6
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

А я бы так написал
Код:

RichEdit1.Lines.Text:=StringReplace(RichEdit1.Lines.Text,'you','xxxx',[rfreplaceall]);
Ну, с этим малость опоздал...
И если еще без учета регистра, то добавил бы [rfIgnoreCase]
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 09.08.2010 в 17:40.
Grag вне форума Ответить с цитированием
Старый 09.08.2010, 17:38   #7
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

спасибо большое)
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 09.08.2010, 17:41   #8
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

а насчет второго вопроса. Как сделать так чтобы вторая форма отображалась в Панели задач, и чтоб ее можно было сварачивать и закрывать оттуда?
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 09.08.2010, 17:51   #9
ZvEr_HaCkEr
VisualC++/DirectX
Форумчанин
 
Аватар для ZvEr_HaCkEr
 
Регистрация: 16.07.2010
Сообщений: 831
По умолчанию

или еще проще кинуть replace dialog и обработать событие OnReplace.
Код:
procedure TForm4.ReplaceDialog1Replace(Sender: TObject);
  label 10;
begin
10:
richedit1.HideSelection:=true;

if pos(replacedialog1.FindText,richedit1.Text)<>0 then
 begin
   richedit1.SelStart:=pos(replacedialog1.FindText,richedit1.Text)-1;
   richedit1.SelLength:=length(replacedialog1.FindText);
   richedit1.SelText:=replacedialog1.ReplaceText;
 end;
   goto 10;
 richedit1.HideSelection:=false;
end;
ZvEr_HaCkEr вне форума Ответить с цитированием
Старый 09.08.2010, 20:59   #10
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Как сделать так чтобы вторая форма отображалась в Панели задач,
Вот так можно. правда код на С++.
Код:
SetWindowLong(Form2->Handle,GWL_EXSTYLE,GetWindowLong(Form2->Handle,GWL_EXSTYLE)|WS_EX_APPWINDOW);
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно подправить код zeppelin58 Общие вопросы C/C++ 1 28.05.2010 12:11
Подправить код werser Помощь студентам 4 14.03.2010 23:26
Подправить рабочий код. michaelk Общие вопросы C/C++ 0 06.12.2009 11:33
подправить код ELF astserg01 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 09.04.2009 06:49