
12.06.2010, 17:54
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме: 1819761
Репутация:
180
|
|
Как всегда, на билдере. Не нравится мне синтаксис делфи =)
PHP код:
String sMacros = "";
TStringList* MacrosList = new TStringList;
// если StrictDelimiter == false, пробел тоже будет считаться разделителем
MacrosList->StrictDelimiter = true;
// указываем нужный разделитель
MacrosList->Delimiter = '|';
//пока макросы есть в сообщении выполняем цикл
while(sMsg.Pos("{") && sMsg.Pos("}"))
{
// записываем первый в сообщении макрос в переменную sMacros
sMacros = sMsg;
sMacros.Delete(1, sMacros.Pos("{"));
sMacros.SetLength(sMacros.Pos("}") - 1);
// разбиваем макрос на строки (одна строка - один вариант текста)
MacrosList->DelimitedText = sMacros;
// выбираем случайный вариант текста
sMacros = MacrosList->Strings[Random(MacrosList->Count)];
// заменяем в сообщении текст макроса на выбранный вариант
sMsg = sMsg.SubString(1, sMsg.Pos("{") - 1) +
sMacros +
sMsg.SubString( sMsg.Pos("}") + 1,
sMsg.Length() - sMsg.Pos("}"));
}
p.s.: про Randomize не забудь
Последний раз редактировалось M_script_; 12.06.2010 в 17:57..
|
|
|