Онлайн-справочник по самым часто задаваемым вопросам из темы "Как сделать?" на форуме 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,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
!вырезаем последние три символа
$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
$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.