Ребят нужна помощь с макросами {один|два|три}- выбирается одно из слов или фраз. Думаю все знают. ||| - разделяет сообщение на 2. Выбирает и отправляет одну из указанных частей. например вот так как это релизовать на делфи, знаю только что надо записать в стринглист весь нашь текст
Как всегда, на билдере. Не нравится мне синтаксис делфи =) 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 не забудь
Значит неправильно сделал. В мемо1 - твой исходный текст. После нажатия кнопки в мемо2 будет добавляться обработанный текст. Красным отмечено то, что было неправильно. Зеленым - то, чего не хватало.