Генерация текста
Данный код генерирует текст по такому принципу:
Есть шаблон к примеру:
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.