Сравнение первого символа с диапазоном значений.

Список разделов foobar2000 Секреты foobar2000

Описание: Кнопочки, конфиги, секреты, советы.

Сообщение #1 Askas » 08.12.2013, 12:16

Доброго времени суток заглянувшим. Возникла необходимость сравнения первого символа строки с диапазоном значений. Хочу сделать группировку альбомов и исполнителей в Library tree по первому символу. Но в моей медиатеке есть альбомы/исполнители, начинающиеся, помимо английского алфавита, на цифры и иероглифы. В связи с этим, решил сделать группировку таким образом%

>Album
> 0 - 9
| - 0
| - 1
| - 2
| - ...
| - 9
> A - Z
| - A
| - B
| - C
| - ...
| - Z
> Other
| - <kanji1>
| - <kanji2>
| - <kanji3>
| - <...>

То есть нужно взять первый символ, сравнить с диапазоном, и запихать его в соответствующую группу. Моих скудных знаний не хватило для реализации подобного. Можно ли вообще сдеать так в Library tree?
Askas M
Автор темы
Откуда: Новосибирск
Репутация: 0
С нами: 10 лет 10 месяцев

Сообщение #2 kgena_ua » 08.12.2013, 12:35

Может я не правильно понял вопрос.
Если
Askas:группировку альбомов и исполнителей в Library tree по первому символу
начать можно с этого:
$left(%album%,1)| и т.д.
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 10 лет 11 месяцев

Сообщение #3 Askas » 08.12.2013, 14:01

kgena_ua, Это даст простую сортировку по первому символу.
Screenshot 2013-12-08 16.59.04.png
Screenshot 2013-12-08 16.59.04.png (3.72 КБ) Просмотров: 1971

Мне же нужно сгруппировать альбомы начинающиеся с цифр, с букв и с иероглифов по отдельности.
Askas M
Автор темы
Откуда: Новосибирск
Репутация: 0
С нами: 10 лет 10 месяцев

Сообщение #4 mgz » 08.12.2013, 15:45

Askas, вот тупой перебор символов. Видит цифры и английский алфавит. Остальное можно доделать по аналогии.
Спойлер
Код: Выделить всё
$puts(A1,$left(%album artist%,1))
$if(
$or(
$stricmp($get(A1),0),
$stricmp($get(A1),1),
$stricmp($get(A1),2),
$stricmp($get(A1),3),
$stricmp($get(A1),4),
$stricmp($get(A1),5),
$stricmp($get(A1),6),
$stricmp($get(A1),7),
$stricmp($get(A1),8),
$stricmp($get(A1),9)
)
,'0-9'
,$if(
$or(
$stricmp($get(A1),A),
$stricmp($get(A1),B),
$stricmp($get(A1),C),
$stricmp($get(A1),D),
$stricmp($get(A1),E),
$stricmp($get(A1),F),
$stricmp($get(A1),G),
$stricmp($get(A1),H),
$stricmp($get(A1),I),
$stricmp($get(A1),J),
$stricmp($get(A1),K),
$stricmp($get(A1),L),
$stricmp($get(A1),M),
$stricmp($get(A1),N),
$stricmp($get(A1),O),
$stricmp($get(A1),P),
$stricmp($get(A1),Q),
$stricmp($get(A1),R),
$stricmp($get(A1),S),
$stricmp($get(A1),T),
$stricmp($get(A1),U),
$stricmp($get(A1),V),
$stricmp($get(A1),W),
$stricmp($get(A1),X),
$stricmp($get(A1),Y),
$stricmp($get(A1),Z),
)
,'A-Z'
,'OTHER'
)
)
|$get(A1)
|%album artist%|'['%date%']' %album%
|%tracknumber%.[%track artist% - ]%title%

Добавлено спустя 2 минуты 5 секунд:
В первой строке замените:
Код: Выделить всё
$puts(A1,$left(%album artist%,1))
на
Код: Выделить всё
$puts(A1,$left(%album%,1))
mgz M
Аватара
Откуда: Украина, Киев
Репутация: 73
С нами: 17 лет 10 месяцев

Сообщение #5 Askas » 08.12.2013, 18:42

mgz, Да! То что нужно! Большое спасибо! :beer:
Askas M
Автор темы
Откуда: Новосибирск
Репутация: 0
С нами: 10 лет 10 месяцев


Вернуться в Секреты foobar2000