RU

Добавляются лишние символы перевода строки

studentik #2643 18.08.2023 11:18 2 comments 1760 views

Всем доброго времени. Заранее прошу прощения, если задаю вопрос не туда (тема “Как сделать?”, я думаю, не подходит).
В общем, при восстановлении текста, сохраненного с помощью функции $maintxt, добавляются лишние переводы строки (каждый раз по 1 строке).

Код для проверки (также прикрепляю готовый файл в формате игры с этим кодом):

Spoiler
_i = 0
_max = 34
:loc_loop
if _i < _max:
	'lorem ipsum dolor sit amet'
	_i += 1
	jump 'loc_loop'
end

act 'Сохранить и восстановить основной текст':
	$_maintxt = $maintxt
	*clr
	$_maintxt
	killvar '_maintxt'
end

Проверил данный код на двух версиях плеера (5.7.0 и 5.8.0 Beta7), и на обоих его поведение одинаковое.
Причем, если получить размер сохраненного текста с помощью len, и выполнить код из act, то количество символов увеличивается на 2 каждый раз.

Вопрос: как избежать этих лишних добавлений переводов строк?

Пробовал использовать $trim, и даже $mid, чтобы вырезать последние 1-2 символа, но вырезаются только символы из самого текста, а сами символ(ы) перевода строки остаются на месте.

Edited at 18.08.2023 11:46 (2 years ago)
Aleks Versus Moderator 20.08.2023 15:11 (2 years ago)

studentik,
но ты ведь выводишь текст с помощью неявного оператора, а он ведёт себя, как оператор *pl в этом случае.
Используй *p при выводе, и не будет лишнего перевода строк.

act 'Сохранить и восстановить основной текст':
    $_maintxt = $maintxt
    *clr
    *p $_maintxt
    killvar '_maintxt'
end

Aleks Versus,
Вот я дурак… я совсем забыл про эти *p, *pl, *nl…
Спасибо большое =)

Log in or Register to post comments.