Онлайн-справочник по самым часто задаваемым вопросам из темы "Как сделать?" на форуме QSP.su

20.13. Как разредить текст пробелами?

В: Как разредить текст пробелами?

Например, сделать разрежение текста через каждые три символа.

О:

Для того, чтобы сделать подобное, понадобятся функции для работы с текстом и цикл.

Простой алгоритм для разрежения текста (отсчёт начинается от первого символа в строке)

!$text - здесь лежит текст
loop while len($text)>0:
    
!вырезаем первые три символа
    $t=$mid($text,1,3)
    
!убираем первые три символа из строки
    $text=$mid($text,4)
    
! составляем новую строку
    $print_text=$print_text+$t+' '
end

Если разрежение необходимо производить через каждые три символа, начиная с последнего, немного меняем алгоритм:

loop while len($text)>0:
    
!вырезаем последние три символа
    $t=$mid($text,len($text)-2)
    
!убираем последние три символа из строки
    $text=$mid($text,1,len($text)-3)
    
! составляем новую строку
    $print_text=' '+$t+$print_text
end

Легко заметить, что данные алгоритмы будут добавлять лишний символ пробела в конце или в начале строки. Но этот недостаток так же легко исправить:

loop while len($text)>0:
    $t=$mid($text,1,3)
    $text=$mid($text,4)
    if len($text)>0:
        $print_text=$print_text+$t+' '
    else
        $print_text=$print_text+$t
    end
end

В библиотеке "easy.math" присутствует готовая функция, разрежающая текст, с дополнительными возможностями и различными настройками. См. функцию em.str.thin.