Исходник программы, показывающей пример генерации (размножения) текста (спинннинг) - это метод случайного изменения текста на основе заданных пользователем фраз, встроенных в текст.
Описание
В этой реализации «наборы альтернативных фраз» определены в фигурных скобках {}, которые должны выбираться случайным образом при помощи разделителя символа вертикальной черты |. Если набор фраз содержит только одну фразу, она будет случайным образом включена или опущена из расчета 50/50.
Заметки
Я использую функцию Posex для сканирования ввода символов {|} и |. Posex имеет преимущество перед старой функцией Pos, потому что мы можем указать точку для начала поиска указанного символа. Обновляя поле Start с предыдущего N и просматривая местоположение N следующего желаемого символа, мы можем систематически перемещаться по тексту. Использование Posex требует добавления StrUtils в предложение Uses модуля.
Логика состоит в том, чтобы скопировать неизмененный текст из начала текста или предыдущего символа} в следующий cледующий {или конец текстовой строки. Если {найден, просканируйте, чтобы убедиться, что есть закрывающий символ}, а затем создайте массив фраз (Phrases), содержащихся в этих скобках, причем конец каждой фразы будет отмечен знаком | символ или закрывающий символ}. Мы используем функцию Random, чтобы выбрать один из них для добавления в строку вывода текста.