Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
foobar2000:tagz:tutorial:create_columns [2006/09/01 17:20] Mishail |
foobar2000:tagz:tutorial:create_columns [2017/11/05 12:26] (текущий) VEG старая версия восстановлена (2006/09/02 05:42) |
||
---|---|---|---|
Строка 122: | Строка 122: | ||
)) | )) | ||
- | The first line should look familiar. It checks for album tracks and executes or skips the following lines accordingly. | + | Первая строка Вам уже наверняка знакома, она выполняет остальные строки для альбомных трэков, и, естественно, пропускает их для одиночных. |
+ | |||
+ | Строки начиная со второй являются вызовом одной команды - ''$ifgreater()'', которая делает следующее: //Если номер трэка больше 9 (что означает что он состоит из 2-х цифр), то отображать номер трэка. Иначе отобразить 0, а затем номер трэка, без нуля в начале.// | ||
+ | |||
+ | Стоит отметить, что вы не можете не указывать часть //иначе// в коммандах ''$ifgreater()'', такое разрешается только для обычного ''$if()''. | ||
+ | |||
+ | Функция ''$num(number,length)'' работает следующим образом: она берет число //number// и присоединяет нули к его началу до тех пор пока, пока дляна строки не станет равной //length//. Если же длина строки (количество цифр) в //number// уже больше //length//, то никаких действий выолняться не будет. Если же строка содержащая число //number// уже заполнена нулями спереди до длины большей чем //length//, то после выполнения функции лишние нули будут удалены. Данная возможность этой функции именно то, что нам надо в этом скрипте, потому что ее вызов с //length// равной 1 всегда удаляет любые нули в начале строки, а подстановка полей foobar2000 всегда дополняет нулями номер трэка до двух цифр. Вы могли заметить, что наш вызов ''$ifgreater()'' сам ставит ноль в для номера трэка, если он меньше 10. Вы спросите, зачем мы подставляем ноль сами, хотя мы обрезали его перед этим используя ''$num(%tracknumber%,1)''? Почему не не используем стандартную подстановку полей, которая автоматически добавляет ноль? Так вот, далее мы планируем отображать этот ведущий ноль другим цветом, а используя стандартную подстановку полей это невозможно. | ||
+ | |||
+ | Собственно скрипт для столбца //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~~ |