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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2013, 15:52   #1
igrok111
Форумчанин
 
Регистрация: 12.07.2012
Сообщений: 140
По умолчанию Заменить определенное слово на рандомные слова

В мемо есть текст, там повторяется слово "hello". Нужно его заменить на случайное значение, что все они были разные: hello->sdufdsuf hello->kshbdshd и тд.
нашел функцию рандомного создания строки (string) и замены слова в цикле, но оно заменяет слова на 1 слово: hello->qwerty hello->qwerty и тд.
Что поменять?
Код:
function RWord: String;
var i, j: Integer;
begin
Result := '';
i := Random(5) + 2;
for j := 1 to i do
Result := Result + Char(Random(26) + 97)
end;

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.lines.text:=StringReplace(memo1.lines.text , 'hello' , RWord ,[rfreplaceall]);
end;

end.
igrok111 вне форума Ответить с цитированием
Старый 03.08.2013, 18:08   #2
Stertor
Заблокирован
 
Регистрация: 17.07.2013
Сообщений: 104
По умолчанию

Код:
i := Random(5) + 2;
for j := 1 to i do
Result := Result + Char(Random(26) + 97)
end;
Вынеси это в отдельную функцию. В коде у тебя рандом срабатывает только 1 раз, оттого и ошибка.
Stertor вне форума Ответить с цитированием
Старый 03.08.2013, 19:09   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В коде у тебя рандом срабатывает только 1 раз
Неправда. Рандомизация срабатывает столько сколько срабатывает цикл.
Просто нужно делать так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
while pos('hello',memo1.lines.text)<>0 do
 memo1.lines.text:=StringReplace(memo1.lines.text , 'hello' , RWord ,[]);
end;
Ибо сам StringReplace не является итеративно исполняющей функцией, т.е. его параметры переданные один раз не меняются в течении замены, поэтому вызывать его нужно несколько раз.
I'm learning to live...

Последний раз редактировалось Stilet; 03.08.2013 в 19:17.
Stilet вне форума Ответить с цитированием
Старый 04.08.2013, 00:15   #4
Троллинг
Новичок
Джуниор
 
Регистрация: 03.08.2013
Сообщений: 6
По умолчанию

Да ну на х. А где ты раньше был, дорогой товарисч? Ждал, когда я отвечу?
Можно заблокировать тролля, но нельзя забанить троллинг, ибо это не причина, а следствие.
Троллинг вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посчитать количество строк содержащих определенное слово cloud.00 PHP 1 31.03.2012 12:25
Даны два слова. Получить третье слово из неповторяющихся символов, входящих как в первое, так и во второе слова. dlinkz Паскаль, Turbo Pascal, PascalABC.NET 8 01.02.2012 11:09
Заменить заданное слово в тексте, находящемся в заданном файле, на другое слово (С++) Lapochka Помощь студентам 6 01.12.2011 14:05
Взять определенное слово или число из memo timyr1997 Общие вопросы Delphi 0 13.06.2010 17:12
Как заменить определенное слово в ячейке, на содержимое другой ячейки. Брысь Microsoft Office Excel 2 04.03.2010 16:01