Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
foobar2000:tagz:tutorial:create_columns [2006/09/01 17:44] Mishail |
foobar2000:tagz:tutorial:create_columns [2017/11/05 12:26] (текущий) VEG старая версия восстановлена (2006/09/02 05:42) |
||
---|---|---|---|
Строка 128: | Строка 128: | ||
Стоит отметить, что вы не можете не указывать часть //иначе// в коммандах ''$ifgreater()'', такое разрешается только для обычного ''$if()''. | Стоит отметить, что вы не можете не указывать часть //иначе// в коммандах ''$ifgreater()'', такое разрешается только для обычного ''$if()''. | ||
- | Функция ''$num(number,length)'' работает следующим образом: она берет число //number// и присоединяет нули к его началу до тех пор пока, пока дляна строки не станет равной //length//. Если же длина строки (количество цифр) в //number// уже больше //length//, то никаких действий выолняться не будет. Если же строка содержащая число //number// уже заполнена нулями спереди до длины большей чем //length//, то после выполнения функции лишние нули будут удалены. | + | Функция ''$num(number,length)'' работает следующим образом: она берет число //number// и присоединяет нули к его началу до тех пор пока, пока дляна строки не станет равной //length//. Если же длина строки (количество цифр) в //number// уже больше //length//, то никаких действий выолняться не будет. Если же строка содержащая число //number// уже заполнена нулями спереди до длины большей чем //length//, то после выполнения функции лишние нули будут удалены. Данная возможность этой функции именно то, что нам надо в этом скрипте, потому что ее вызов с //length// равной 1 всегда удаляет любые нули в начале строки, а подстановка полей foobar2000 всегда дополняет нулями номер трэка до двух цифр. Вы могли заметить, что наш вызов ''$ifgreater()'' сам ставит ноль в для номера трэка, если он меньше 10. Вы спросите, зачем мы подставляем ноль сами, хотя мы обрезали его перед этим используя ''$num(%tracknumber%,1)''? Почему не не используем стандартную подстановку полей, которая автоматически добавляет ноль? Так вот, далее мы планируем отображать этот ведущий ноль другим цветом, а используя стандартную подстановку полей это невозможно. |
- | This last feature is the one we need in the script, because a length of 1 always removes any leading zeros and Foobar2000’s tag remapping by default zero-pads tracknumbers to two-digit length. You might have noticed that the $ifgreater() does the zero-padding manually: displaying just the number when the number is at least 10 and padding with a zero below. We use this manual method because we later want to display the leading zero in a different colour. But we couldn’t access it individually using automatic padding. | + | Собственно скрипт для столбца //Tracknumber// готов. Тем не менее мы добавим одну маленькую изюминку, сделав отображение номеров трэков в [[wpru>Hex|шестнадцатеричной системе]]. Конвертация числа осуществляется простым вызовом функции ''$hex()''. Получим наш финальный скрипт: |
+ | $if($get_global(isAlbum), | ||
+ | $ifgreater(%tracknumber%,15, | ||
+ | $hex(%tracknumber%,1), | ||
+ | '0'$hex(%tracknumber%,1) | ||
+ | )) | ||
+ | |||
+ | Синтаксис у ''$hex()'' точно такой же как и у ''$num()''. Все что нам нужно сделать, это поместить все выводимые номера трэков в функцию ''$hex()'' и немного изменить код для добавления нулей, потому что в шестнадцатеричной системе вторая цифра появляется у числа большего F, равному 15 в десятеричной системе. Соответственно нам нужно заменить нашу 9-ку во второй строке скрипта на 15. | ||
+ | |||
+ | Конечно же Вы можете отображать номера трэков так как Вам угодно, я же поклонник шестнадцатеричной системы, и буду использовать этот скрипт на всем протяжении этого пособия. | ||
~~DISCUSSION~~ | ~~DISCUSSION~~ |