Инструменты пользователя

Инструменты сайта


foobar2000:tagz:tutorial:create_columns

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
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 scriptbecause a length of 1 always removes any leading zeros and Foobar2000’s tag remapping by default zero-pads tracknumbers to two-digit lengthYou might have noticed that the $ifgreater() does the zero-padding manuallydisplaying 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~~
foobar2000/tagz/tutorial/create_columns.1157118277.txt.gz · Последние изменения: 2006/09/02 04:42 (внешнее изменение)