Группировка артистов в панели плагина Browser.

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

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

Сообщение #1 Break » 04.10.2006, 17:40

Я активно пользуюсь медиа-лайбори, по сему стоят плагины Playlist Tree и Browser.
Но песен и исполнителей очень много, потому нужна группировка.

В Browser три панельки:
  • Первая буква имени исполнителя  $left(%artist%,1)
  • Имя целиком
  • Альбом

Хочется изменить код первой панелки, чтоб можно было выбирать исполнителей, с именами из промежутка:
  • А-Д
  • Е-З
  • И-М
и т.д.


Хотел написать:

Код: Выделить всё
%_t3%  $if($or(
$stricmp($left(%artist%,1),а),
$stricmp($left(%artist%,1),б),
$stricmp($left(%artist%,1),в),
$stricmp($left(%artist%,1),г),
$stricmp($left(%artist%,1),д)
),А-Д,
$if($or(
$stricmp($left(%artist%,1),е),
$stricmp($left(%artist%,1),ё),
$stricmp($left(%artist%,1),ж),
$stricmp($left(%artist%,1),з)
),Е-З,
$if($or(
$stricmp($left(%artist%,1),и),
$stricmp($left(%artist%,1),к),
$stricmp($left(%artist%,1),л),
$stricmp($left(%artist%,1),м)
),И-М,

и так далее....

))


Но не учел, что в поле кода панелек Browser помещается всего 241 символ, в результате сократил до

Код: Выделить всё
$if($or($stricmp($left(%artist%,1),а),$stricmp($left(%artist%,1),б),$stricmp($left(%artist%,1),в),$stricmp($left(%artist%,1),г),$stricmp($left(%artist%,1),д)),А-Д,$if($or($stricmp($left(%artist%,1),е),$stricmp($left(%artist%,1),ё)),Е-Ё,ост))

работа-ть работает, но не поместились все промежутки группировки, которые я хотел...  :(


Вопросы:

  • 1) Можно ли как-то использовать $greater(X,Y), или какой-то его аналог для сравнения символов?
  • 2) Как вообще оптимизировать код, чтоб все промежутки группировки поместились в 241  символ? Готов сделать промежутки шире, например А-З, З-Т, У-Я, + аналогичные английские
Последний раз редактировалось Break 04.10.2006, 17:46, всего редактировалось 1 раз.
Break M
Автор темы
Репутация: 0
С нами: 17 лет 9 месяцев

Сообщение #2 Dr.Death » 04.10.2006, 18:32

$ifgreater($strstr('абвгд....',$left(%artist%,1)), x , then , else)
Dr.Death M
Аватара
Откуда: Тюмень
Репутация: 0
С нами: 17 лет 10 месяцев

Сообщение #3 Break » 04.10.2006, 21:05

2Dr.Death Спасибо! Для проверки ввел новое поле и разделил на русские и английские буквы:

Код: Выделить всё
$puts(a,'ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЭЮЯ')
$ifgreater($strchr($get(a),$caps($left(%artist%,1))),0,$ifgreater($strchr($get(a),$caps($left(%artist%,1))),27,Русские,English),Другие)

Если впихнуть в 241 символ все группировки не получится, то решу "экстенсивно": не на одной, а на 2-х панелях.
Break M
Автор темы
Репутация: 0
С нами: 17 лет 9 месяцев


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