Генерация текста

Данный код генерирует текст по такому принципу:

Есть шаблон к примеру:

ru.stackoverflow.com - {лучший|классный|восхитительный} форум - {2019|2020|2022} года

После, генерация идет только по первым ключевым словам, что между скобок {}, то есть так:

ru.stackoverflow.com - лучший форум - {2019|2020|2022} года
ru.stackoverflow.com - классный форум - {2019|2020|2022} года
ru.stackoverflow.com - восхитительный форум -{2019|2020|2022} года
ru.stackoverflow.com - 2020 форум - {2019|2020|2022} года
ru.stackoverflow.com - 2022 форум - {2019|2020|2022} года

Как исправить код, чтобы генерация шла по всему шаблону, то есть на выходе получить:

ru.stackoverflow.com - лучший форум - 2019 года
ru.stackoverflow.com - классный форум - 2020 года
ru.stackoverflow.com - восхитительный форум - 2022 года
ru.stackoverflow.com - 2020 форум - 2019 года
ru.stackoverflow.com - 2022 форум - 2020 года

Вот, собственно, и код:

var
 s: string;
 ss: Tstringlist;
 i: integer;
begin
 ss:= Tstringlist.Create;
 s:=memo1.Lines.Strings[0];
 delete(S,1,pos('{',S));
 while pos('|',S)<>0 do
  Begin
   ss.Add(copy(S,1,pos('|',S)-1));
   delete(S,1,pos('|',S));
  End;
 ss.Add(copy(S,1,pos('}',S)-1));
 s:=copy(memo1.Lines.Strings[0],1,pos('-',memo1.Lines.Strings[0])-2);
 ss.Add(copy(memo1.Lines.Strings[0],
             pos('}',memo1.Lines.Strings[0])+2,
             length(memo1.Lines.Strings[0])));
 for i:=0 to ss.count-2 do
  memo1.Lines.Add(s+' '+ss.Strings[i]+' '+ss.Strings[ss.count-1]);
end;
end.

Ответы (0 шт):