Помогите с отображением формата

Список разделов Аудиоплеер foobar2000 Есть вопрос!

Описание: У вас проблемы с foobar2000 и вам необходима помощь? Спрашивайте здесь!
Правила раздела: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть. Подробно описывайте проблему. Не забывайте указать версию плеера, название сборки, по возможности добавить скриншоты проблемы.

Сообщение #1 mrfran » 13.07.2022, 17:51

Возник вопрос: как вывести в WSH Panel значение File size '('%filesize%' bytes)', которое выводит в виде (0000000000 bytes) в формат (0 000 000 000 bytes)?
mrfran
Автор темы
Репутация: 0
С нами: 7 лет 5 месяцев

Сообщение #2 imfam » 15.07.2022, 13:58

2022-07-15_115401.png

Так, например.
Моя сборка: http://d9819506.bget.ru/foobar_my.html
imfam M
Откуда: Германия
Репутация: 21
С нами: 9 лет 2 месяца

Сообщение #3 mrfran » 15.07.2022, 17:39

Насколько я понимаю, ваш вариант и будет выводить в виде 0000000000 а не разбивать вот так 0 000 000 000
mrfran
Автор темы
Репутация: 0
С нами: 7 лет 5 месяцев

Сообщение #4 LUR » 15.07.2022, 20:18

mrfran:как вывести в WSH Panel значение File size '('%filesize%' bytes)', которое выводит в виде (0000000000 bytes) в формат (0 000 000 000 bytes)?
Код: Выделить всё
var sizeString = parseInt(fb.TitleFormat("%filesize%").Eval()).toLocaleString();
или
Код: Выделить всё
var playingSizeString = fb.GetNowPlaying().FileSize.toLocaleString();
var focusedSizeString = fb.GetFocusItem().FileSize.toLocaleString();

Справедливо для Spider Monkey Panel.

В JScript Panel оно все время добавляет дробную часть типа: 1 234 567,00
Поэтому можно добавить "обрезалку" трех последних символов:
Код: Выделить всё
fb.GetNowPlaying().FileSize.toLocaleString().slice(0,-3);
LUR M
Модератор
Аватара
Возраст: 39
Откуда: Минск
Репутация: 308
С нами: 9 лет 8 месяцев

Сообщение #5 mrfran » 16.07.2022, 00:03

Lur
Спасибо, буду пробовать

Добавлено спустя 3 часа 33 минуты:
LUR

Ваши предложения предполагалось вставить в следующие фрагменты:

Код: Выделить всё
var tfname = [
.
.
.
["%filename_ext%", "File name"],
["$directory_path(%path%)", "Folder name"],
["%path%", "File path"],
["%filesize_natural% ['('%filesize%' bytes)']", "File size"],
.
.
.
]

Это в WSH Panel

и

Код: Выделить всё
[$rgb(152,152,152)%search_state%][ $rgb(152,152,152)%search_progress%'%']
[$rgb(152,152,152)'Artist:' $rgb(128,192,255)%album artist%[ '/' %track artist%]]
[$rgb(152,152,152)'Title:' $rgb(192,228,255)$if(%title%,$replace(%title%,'(',$rgb(152,152,152)'(',')',$rgb(152,152,152)')'$rgb(192,228,255),'[',$rgb(152,152,152)'[',']',$rgb(152,152,152)']'$rgb(192,228,255))$rgb(64,100,128)[ %length%]$rgb(152,152,152)['('%subtitle%')'])]
[$rgb(152,152,152)'Album:' $rgb(128,192,255)%album%]
[$rgb(152,152,152)%genre%]
.
.
.
['Encoder:' $info(tool)]
['File Size:' $if($strstr([$upper($ext(%path%))],CUE),CUE 'file ')[%filesize_natural% '('%filesize% bates')']]
['Duration:' %length_ex% ['('%length_samples%' samples)']]
['Audio MD5:' $info(md5)]
'Play Count:' $if(%play_count%,- Track played$ifequal(%play_count%,1, only once -,$ifequal(%play_count%,2, twice -, %play_count% times -) ),Never Played)
$'Last Played:' $if2(%last_played%,Never Played)

Этот код в Lyric Show Panel 3.

Но, или я что-то не так делал, или ваши примеры не получится вставить в мои фрагменты
mrfran
Автор темы
Репутация: 0
С нами: 7 лет 5 месяцев

Сообщение #6 imfam » 17.07.2022, 14:15

mrfran, в моём примере выше пробелы легко вставить

2022-07-17_121153.png


Код: Выделить всё
File size $insert($insert(%filesize%, ,$sub($len(%filesize%),3)), ,$sub($len(%filesize%),6))
Моя сборка: http://d9819506.bget.ru/foobar_my.html
imfam M
Откуда: Германия
Репутация: 21
С нами: 9 лет 2 месяца

Сообщение #7 LUR » 17.07.2022, 21:12

mrfran:или я что-то не так делал, или ваши примеры не получится вставить в мои фрагменты
потому что судя по всему у вас используются имена переменных типа %filesize% и т.д. из готового массива для последующей обработки. где и как в коде обрабатывается массив это уже совсем другая песня. если вы знаете где, то вставите проверку на %filesize% и обработаете с помощью моего кода, если не знакомы с программированием на JS, то лучше обратитесь к обработке с помощью встроенного языка фубара на примере imfam
LUR M
Модератор
Аватара
Возраст: 39
Откуда: Минск
Репутация: 308
С нами: 9 лет 8 месяцев

Сообщение #8 mrfran » 18.07.2022, 19:28

LUR, imfam
Спасибо за участие в решении вопроса.

imfam
Ваш последний вариант рабочий, но...
Когда объёмы файлов слишком разные, то возникает большое количество пробелов при отображении величины небольшого файла и bytes. Это не очень эстетично смотрится. Скорее даже хуже чем не применяя форматирование результата.

Можно как-то это предусмотреть средствами самого foobar2000?

P. S. Я скачал вашу сборку в которой тех строк, которые вы указали нет.
mrfran
Автор темы
Репутация: 0
С нами: 7 лет 5 месяцев

Сообщение #9 imfam » 19.07.2022, 01:25

mrfran, у меня этого кода нет, т.к. не нужен он мне. Вставляйте, как на картинке, свой код. Я насчёт пробелов не понял, не вижу их. Но если у Вас есть, можно убрать, как префикс:
Код: Выделить всё
$crlf()$crlf()$stripprefix(File size $insert($insert(%filesize%, ,$sub($len(%filesize%),3)), ,$sub($len(%filesize%),6)), ,  ,   ,    ,     ,      )

Здесь все доступные команды. Пробуйте.
Моя сборка: http://d9819506.bget.ru/foobar_my.html
imfam M
Откуда: Германия
Репутация: 21
С нами: 9 лет 2 месяца


Вернуться в Есть вопрос!