
12.06.2010, 22:24
|
|
Участник форума
Регистрация: 12.11.2009
Сообщений: 160
Провел на форуме: 568182
Репутация:
11
|
|
вот так?
procedure TForm2.Button2Click(Sender: TObject);
var
sMacros,sMsg: String;
MacrosList: TStringList;
begin
sMacros := '';
MacrosList := TStringList.Create();
MacrosList.Add(memo2.Text);
// если StrictDelimiter = false, пробел тоже будет считаться разделителем
MacrosList.StrictDelimiter := true;
// указываем нужный разделитель
MacrosList.Delimiter := '|';
//пока макросы есть в сообщении выполняем цикл
while (Pos('{', sMsg) <> 0) and (Pos('}', sMsg) <> 0) do
begin
// записываем первый в сообщении макрос в переменную sMacros
sMacros := sMsg;
Delete(sMacros, 1, Pos('{', sMacros));
SetLength(sMacros, Pos('}', sMacros) - 1);
// разбиваем макрос на строки (одна строка - один вариант текста)
MacrosList.DelimitedText := sMacros;
// выбираем случайный вариант текста
sMacros := MacrosList.Strings[Random(MacrosList.Count)];
// заменяем в сообщении текст макроса на выбранный вариант
sMsg := Copy(sMsg, 1, Pos('{', sMsg) - 1) +
sMacros +
Copy(sMsg, Pos('}', sMsg) + 1,
Length(sMsg) - Pos('}', sMsg));
end;
memo1.Text:=sMacros;
end;
|
|
|