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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2014, 21:05   #1
Pearl777
Форумчанин
 
Регистрация: 04.01.2013
Сообщений: 171
По умолчанию Рандомизация текста по шаблону

Здравствуйте! Подскажите как правильно сделать рандомизацию текста по шаблону.

У меня есть вот такой шаблон: [Здравствуйте | Привет | Хай] *UserName*. [Как дела? | Что делаешь? | Как учеба]. (Текст может быть любым).

Как это текст слепить в кучу, чтобы получило что-то такое: Привет *UserName*. Как дела?
Pearl777 вне форума Ответить с цитированием
Старый 21.07.2014, 10:28   #2
Pearl777
Форумчанин
 
Регистрация: 04.01.2013
Сообщений: 171
По умолчанию

Вверх!!

Помощь все ещё нужна.
Pearl777 вне форума Ответить с цитированием
Старый 21.07.2014, 10:33   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых,
посмотрите тему: Рандомизация текста

во-вторых, если вложенные варианты в шаблоне не допускаются, то задачка совсем не сложная - парсите все варианты в список, выбирайте случайное значение из списка.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.07.2014, 10:42   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Взять текст с [ и до ].
Исключить [] из выбранной строки.
Разбить остаток с помощью TStringList.Delimitedtext,Delimiter :=|''; и триммировать Delimitedtext(Убрать лишние пробелы по краям.)
Случайно выбрать слово из списка.
Удалить текст, начиная с символа после [ и до ] включительно, заменить [ на выбранное рандомное слово.

все.

И так далее...
Человек_Борща вне форума Ответить с цитированием
Старый 21.07.2014, 10:44   #5
Pearl777
Форумчанин
 
Регистрация: 04.01.2013
Сообщений: 171
По умолчанию

Сейчас попробую.
Спасибо всем!
Pearl777 вне форума Ответить с цитированием
Старый 21.07.2014, 12:54   #6
Pearl777
Форумчанин
 
Регистрация: 04.01.2013
Сообщений: 171
По умолчанию

Сделал таким способом. Вроде бы все работает, но если текст [Как дела? | ...], то есть с пробелом, то этот текст делится на две строки:
Как
Дела?

Код:
str := TStringList.Create;
Text := memo1.Text;
ot := Pars('[', Text, ']');
Str.Text := ot;
Str.Delimiter := '|';
Str.DelimitedText := str.Text;
text := StringReplace(text, '['+ot+']', str[Random(str.Count)], [rfIgnoreCase]);
str.Free;
Pearl777 вне форума Ответить с цитированием
Старый 21.07.2014, 13:01   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Str.DelimitedText := str.Text;
Сюда вроде как ot надо вставлять.
Человек_Борща вне форума Ответить с цитированием
Старый 21.07.2014, 13:50   #8
Pearl777
Форумчанин
 
Регистрация: 04.01.2013
Сообщений: 171
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Сюда вроде как ot надо вставлять.
Поставил, но на проблему это никак не повлияло.
Pearl777 вне форума Ответить с цитированием
Старый 21.07.2014, 14:06   #9
Pearl777
Форумчанин
 
Регистрация: 04.01.2013
Сообщений: 171
По умолчанию

Код:
str := TStringList.Create;
Text := memo1.Text;
ot := Pars('[', Text, ']');
str.Text := StringReplace(ot, '|', #13#10, [rfReplaceAll, rfIgnoreCase]);
text := StringReplace(text, '['+ot+']', str[Random(str.Count)], [rfIgnoreCase]);
str.Free;
Сделал таким образом. Теперь все отлично работает.

Всем спасибо за помощь!!
Pearl777 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рандомизация в php DeDoK PHP 3 16.02.2012 23:30
Вывод значений (текста) по шаблону на др лист R0101 Microsoft Office Excel 5 22.04.2011 22:08
Рандомизация текста HoLToFF Помощь студентам 8 19.10.2010 00:05
Рандомизация (BDelphi) VadEr Помощь студентам 3 24.03.2009 16:06
Генерация текста по шаблону PUH Помощь студентам 6 16.05.2008 07:40