Показать сообщение отдельно

  #2  
Старый 12.06.2010, 17:54
M_script_
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме:
1819761

Репутация: 180
Отправить сообщение для M_script_ с помощью ICQ
По умолчанию

Как всегда, на билдере. Не нравится мне синтаксис делфи =)
PHP код:
String sMacros "";
TStringListMacrosList = new TStringList;

// если StrictDelimiter == false, пробел тоже будет считаться разделителем
MacrosList->StrictDelimiter true;
// указываем нужный разделитель
MacrosList->Delimiter '|';
//пока макросы есть в сообщении выполняем цикл
while(sMsg.Pos("{") && sMsg.Pos("}"))
{
    
// записываем первый в сообщении макрос в переменную sMacros
    
sMacros sMsg;
    
sMacros.Delete(1sMacros.Pos("{"));
    
sMacros.SetLength(sMacros.Pos("}") - 1);
    
// разбиваем макрос на строки (одна строка - один вариант текста)
    
MacrosList->DelimitedText sMacros;
    
// выбираем случайный вариант текста
    
sMacros MacrosList->Strings[Random(MacrosList->Count)];
    
// заменяем в сообщении текст макроса на выбранный вариант
    
sMsg sMsg.SubString(1sMsg.Pos("{") - 1) +
            
sMacros +
            
sMsg.SubString(    sMsg.Pos("}") + 1,
                            
sMsg.Length() - sMsg.Pos("}"));

p.s.: про Randomize не забудь

Последний раз редактировалось M_script_; 12.06.2010 в 17:57..
 
Ответить с цитированием