Файлы без тэгов / Правильный показ исп. и названия

Лучший плейер всех времен и народов? Нет, своё мнение Вам мы навязывать не будем... Сами все поймёте...

Сообщение kzz » Пт апр 14, 2006 6:40 pm

Вообщем вот такое сделал сегодня, может кому и пригодится:
Код: выделить все
// Vars
$puts(filen,%_filename%)
// заносим в переменную имя файла
$puts(myfilename,$replace($get(filen),' - ','-','- ','-',' -','-','_-_','-','-_','-','_-','-','%20-%20','-','-%20','-','%20-','-'))
// убираем лишние символы рядом с тире и заносим результат в переменную myfilename
$puts(myartist,$strchr($get(myfilename),-))
// получаем порядковый номер тире в имени файла и заносим в переменную myartist
$puts(fileartist,$left($get(myfilename),$sub($get(myartist),1)))
// вычитаем еденицу из myartist и, используя полученное число, берем столько знаков слева - это и будет исполнитель
$puts(mytitle,$sub($len($get(myfilename)),$get(myartist)))
// вычитаем из myfilename (кол-во сомволов в имени) myartist (порядковый номер тире) и заносим ответ в mytitle
$puts(filetitle,$right($get(myfilename),$get(mytitle)))
// берем зи myfilename mytitle сиволов справа - названии композиции

// Output
%list_index%'. '
$if2(%artist%,$caps($replace($get(fileartist),'_',' ','%20',' ')))
// если нет тэга с исполнителем, показывает содержимое переменной fileartist, изменяя соотвествующие знаки на пробелы и делая первую букву каждого слово с заглавной
' - '

// следующий код я долго выводил, фишка в том, что фубар всегда выводит значение переменной %title%, даже если нет такого тэга в файле (если его нету, то он возращает имя файла всместо вопросительного знака, как происходит с другими тегами при их отсутствии). Поэтому бесполезно использовать функцию $if2(%title%,$caps($replace($get(filetitle),'_',' ','%20',' ')))) - фубар всегда будет отображать ПОЛНОЕ имя файла, если нет тэга. Причем отображать его в неизмененном виде, что нас не устаивает. Вообщем, кто знает - тот поймет.

$if($strcmp(%title%,$get(filen)),
// проверяем равно ли поле %title% имени файла, если нет - то файл скорее всего имеет тэг
$if($strcmp(%title%,$caps($replace($get(filetitle),'_',' ','%20',' '))),
// сравниваем %title% и полученное название композиции с замененными пробелами
%title%,   // если одинаковы - возвращает %title%
$caps($replace($get(filetitle),'_',' ','%20',' '))),
// если %title% не равно полученному названию композиции, то название с замененными пробелами возвращается
%title%)
// если поле %title% не равно имени файла, то возвращает %title%

Код без коментариев:
Код: выделить все
// Vars
$puts(filen,%_filename%)
$puts(myfilename,$replace($get(filen),' - ','-','- ','-',' -','-','_-_','-','-_','-','_-','-','%20-%20','-','-%20','-','%20-','-'))
$puts(myartist,$strchr($get(myfilename),-))
$puts(fileartist,$left($get(myfilename),$sub($get(myartist),1)))
$puts(mytitle,$sub($len($get(myfilename)),$get(myartist)))
$puts(filetitle,$right($get(myfilename),$get(mytitle)))

// Output
%list_index%'. '
$if2(%artist%,$caps($replace($get(fileartist),'_',' ','%20',' ')))
' - '

$if($strcmp(%title%,$get(filen)),
$if($strcmp(%title%,$caps($replace($get(filetitle),'_',' ','%20',' '))),
%title%,
$caps($replace($get(filetitle),'_',' ','%20',' '))),
%title%)

Данный код можно использовать спокойно, т.к. если в файле есть тэги - фубар берет данные из тэгов (естественно, предусмотрено).

Примеры:
Файл: beastie_boys_-_Body_movin_(fatboy_slim_remix).mp3 [без тэгов]
Фубар возвращает: Beastie Boys - Body Movin (Fatboy Slim Remix) [причем исполнитель и название в разных переменных - это я использую в колумнсах - каждому названию колонки соотвествует своя переменная. получается вид, будто бы в файле есть тэги +)]
Файл: svenson_&%20Gielen-Twisted%20(Original_MIX).mp3
Фубар возвращает: Svenson & Gielen - Twisted (Original Mix)
Ну и т.д...

Не продумано во второй строке кода, что ситуация с тире может быть вот такая '%20-_' =) Но это уж сосем мелочи, добавить всегда можно.

Хотелось бы добавить поддержку номеров трэкев двух видов:
01. Svenson & Gielen - Twisted (Original Mix)
[01] Svenson & Gielen - Twisted (Original Mix)
Первый сделать легко, а вот второй сложнее. Если кто знает - подскажите как. Ну а если кому-то не лень, можете помочь усовершенствовать весь код +)
kzz
Ст. сержант
 
Сообщений: 35
Зарегистрирован: Вт мар 21, 2006 5:20 am
Пункты репутации: 0

Сообщение uuuu » Сб апр 15, 2006 11:31 am

а куда ентот код вставлять-то? (я конечно дико извиняюсь за возможно дурацкий вопрос)
uuuu
Мл. сержант
 
Сообщений: 22
Зарегистрирован: Пн фев 07, 2005 6:11 am
Пункты репутации: 0

Сообщение kzz » Сб апр 15, 2006 12:14 pm

2uuuu
Вставляй в колонки колумнсов или в поля Title formating.

Усовершенствовал немного:
Код: выделить все
// Vars
$puts(filen,%_filename%)
$puts(myfilename,$replace($get(filen),'_',' ','%20',' '))
$puts(myartist,$strchr($get(myfilename),-))
$puts(fileartist,$trim($left($get(myfilename),$sub($get(myartist),1))))
$puts(mytitle,$sub($len($get(myfilename)),$get(myartist)))
$puts(filetitle,$trim($right($get(myfilename),$get(mytitle))))

// Output
$if2(%artist%,$caps($replace($get(fileartist),'_',' ','%20',' ')))
' - '
$if($strcmp(%title%,$get(filen)),
$if($strcmp(%title%,$caps($replace($get(filetitle),'_',' ','%20',' '))),
%title%,
$caps($replace($get(filetitle),'_',' ','%20',' '))),
%title%)

Теперь берет любые имена с тире. Пример:
Файл: svenson_&%20Gielen_-%20twisted%20(Original_MIX).mp3
Фубар возвращает: Svenson & Gielen - Twisted (Original Mix)
Попозже сделаю, чтобы если тире нету в имени файла - возвращало просто имя файла.
kzz
Ст. сержант
 
Сообщений: 35
Зарегистрирован: Вт мар 21, 2006 5:20 am
Пункты репутации: 0

Сообщение kzz » Сб апр 15, 2006 12:33 pm

Fixed:
Код: выделить все
// Vars
$puts(filen,%_filename%)
$puts(myfilename,$replace($get(filen),'_',' ','%20',' '))
$puts(myartist,$sub($strchr($get(myfilename),-),1))
$puts(mytitle,$sub($len($get(myfilename)),$add($get(myartist),1)))

$if($strcmp($get(myartist),-1),
$puts(fileartist,%_directoryname%)
$puts(filetitle,$get(filen)),
$puts(fileartist,$trim($left($get(myfilename),$get(myartist))))
$puts(filetitle,$trim($right($get(myfilename),$get(mytitle)))))

// Output
$if2(%artist%,$caps($replace($get(fileartist),'_',' ','%20',' ')))
' - '
$if($strcmp(%title%,$get(filen)),
$if($strcmp(%title%,
$caps($replace($get(filetitle),'_',' ','%20',' '))),
%title%,
$caps($replace($get(filetitle),'_',' ','%20',' '))),
%title%)

Теперь если в имене нет тире, как исполнителя возвращает имя папки, а как название - имя файла.
Последний раз редактировалось kzz Сб апр 15, 2006 12:52 pm, всего редактировалось 1 раз.
kzz
Ст. сержант
 
Сообщений: 35
Зарегистрирован: Вт мар 21, 2006 5:20 am
Пункты репутации: 0

Сообщение kzz » Чт апр 20, 2006 12:02 pm

Updated:
Код: выделить все
// Vars
$puts(filen,%_filename%)
$puts(myfilename,$replace($get(filen),'_',' ','%20',' '))
$puts(check,0)

$if($strcmp($strchr($get(myfilename),'.'),3),
$puts(mytracknumber,$strchr($get(myfilename),'.'))
$puts(filetracknumber,$replace($trim($left($get(myfilename),$get(mytracknumber))),'.',))
$ifgreater($get(filetracknumber),00,
$puts(mytracknumber,$sub($len($get(myfilename)),$get(mytracknumber)))
$puts(myfilename_new,$trim($right($get(myfilename),$get(mytracknumber))))
$puts(check,1),
$puts(myfilename_new,$get(myfilename))),
$puts(myfilename_new,$get(myfilename)))

$if($strchr($get(check),0),
$if($strcmp($strchr($get(myfilename),' '),3),
$puts(mytracknumber,$strchr($get(myfilename),' '))
$puts(filetracknumber,$replace($trim($left($get(myfilename),$get(mytracknumber))),' ',))
$ifgreater($get(filetracknumber),00,
$puts(mytracknumber,$sub($len($get(myfilename)),$get(mytracknumber)))
$puts(myfilename_new,$trim($right($get(myfilename),$get(mytracknumber))))
$puts(check,1),
$puts(myfilename_new,$get(myfilename))),
$puts(myfilename_new,$get(myfilename))),)

$if($strchr($get(check),0),
$if($strcmp($strchr($get(myfilename),'['),1),
$if($strcmp($strchr($get(myfilename),']'),4),
$puts(mytracknumber,$strchr($get(myfilename),']'))
$puts(filetracknumber,$replace($trim($left($get(myfilename),$get(mytracknumber))),'[',,']',))
$ifgreater($get(filetracknumber),00,
$puts(mytracknumber,$sub($len($get(myfilename)),$get(mytracknumber)))
$puts(myfilename_new,$trim($right($get(myfilename),$get(mytracknumber))))
$puts(check,1),
$puts(myfilename_new,$get(myfilename))),
$puts(myfilename_new,$get(myfilename))),
$puts(myfilename_new,$get(myfilename))),)

$puts(myartist,$sub($strchr($get(myfilename_new),-),1))
$puts(mytitle,$sub($len($get(myfilename_new)),$add($get(myartist),1)))

$if($strcmp($get(myartist),-1),
$puts(fileartist,%_directoryname%)
$puts(filetitle,$trim($right($get(filen),$sub($len($get(myfilename_new)),$get(mytracknumber))))),
$puts(fileartist,$trim($left($get(myfilename_new),$get(myartist))))
$puts(filetitle,$trim($right($get(myfilename_new),$get(mytitle)))))

// Output
$if2(%artist%,$caps($replace($get(fileartist),'_',' ','%20',' ')))

' - '

$if($strcmp(%title%,$get(filen)),
$if($strcmp(%title%,
$caps($replace($get(filetitle),'_',' ','%20',' '))),
%title%,
$caps($replace($get(filetitle),'_',' ','%20',' '))),
%title%)

Теперь берет номера треков (находятся в переменной filetracknumber) из таких видов файлов:
[00] Artist - Track
00. Artist - Track
00 Artist - Track
Последний раз редактировалось kzz Чт апр 20, 2006 12:26 pm, всего редактировалось 1 раз.
kzz
Ст. сержант
 
Сообщений: 35
Зарегистрирован: Вт мар 21, 2006 5:20 am
Пункты репутации: 0

Сообщение kzz » Чт апр 20, 2006 4:43 pm

Исправлены ошибки в коде, присутствующие в предыдущем посте:
Код: выделить все
// Vars
$puts(filen,%_filename%)
$puts(myfilename,$replace($get(filen),'_',' ','%20',' '))
$puts(check,0)

$if($strchr($get(check),0),
$if($strcmp($strchr($get(myfilename),'.'),3),
$puts(mytracknumber_new,$strchr($get(myfilename),'.'))
$puts(mytracknumber,$strchr($get(myfilename),'.'))
$puts(filetracknumber,$replace($trim($left($get(myfilename),$get(mytracknumber))),'.',))
$ifgreater($get(filetracknumber),00,
$puts(mytracknumber,$sub($len($get(myfilename)),$get(mytracknumber)))
$puts(myfilename_new,$trim($right($get(myfilename),$get(mytracknumber))))
$puts(check,1),
$if($strcmp($get(filetracknumber),00),
$puts(mytracknumber,$sub($len($get(myfilename)),$get(mytracknumber)))
$puts(myfilename_new,$trim($right($get(myfilename),$get(mytracknumber))))
$puts(check,1),
$puts(myfilename_new,$get(myfilename)))),
$puts(myfilename_new,$get(myfilename))),)

$if($strchr($get(check),0),
$if($strcmp($strchr($get(myfilename),' '),3),
$puts(mytracknumber_new,$strchr($get(myfilename),' '))
$puts(mytracknumber,$strchr($get(myfilename),' '))
$puts(filetracknumber,$replace($trim($left($get(myfilename),$get(mytracknumber))),' ',))
$ifgreater($get(filetracknumber),00,
$puts(mytracknumber,$sub($len($get(myfilename)),$get(mytracknumber)))
$puts(myfilename_new,$trim($right($get(myfilename),$get(mytracknumber))))
$puts(check,1),
$if($strcmp($get(filetracknumber),00),
$puts(mytracknumber,$sub($len($get(myfilename)),$get(mytracknumber)))
$puts(myfilename_new,$trim($right($get(myfilename),$get(mytracknumber))))
$puts(check,1),
$puts(myfilename_new,$get(myfilename)))),
$puts(myfilename_new,$get(myfilename))),)

$if($strchr($get(check),0),
$if($strcmp($strchr($get(myfilename),'['),1),
$if($strcmp($strchr($get(myfilename),']'),4),
$puts(mytracknumber_new,$strchr($get(myfilename),']'))
$puts(mytracknumber,$strchr($get(myfilename),']'))
$puts(filetracknumber,$replace($trim($left($get(myfilename),$get(mytracknumber))),'[',,']',))
$ifgreater($get(filetracknumber),00,
$puts(mytracknumber,$sub($len($get(myfilename)),$get(mytracknumber)))
$puts(myfilename_new,$trim($right($get(myfilename),$get(mytracknumber))))
$puts(check,1),
$if($strcmp($get(filetracknumber),00),
$puts(mytracknumber,$sub($len($get(myfilename)),$get(mytracknumber)))
$puts(myfilename_new,$trim($right($get(myfilename),$get(mytracknumber))))
$puts(check,1),
$puts(myfilename_new,$get(myfilename)))),
$puts(myfilename_new,$get(myfilename))),
$puts(myfilename_new,$get(myfilename))),)

$puts(myartist,$sub($strchr($get(myfilename_new),-),1))
$puts(mytitle,$sub($len($get(myfilename_new)),$add($get(myartist),1)))

$if($strcmp($get(myartist),-1),
$puts(fileartist,%_directoryname%)
$puts(filetitle,$trim($right($get(filen),$sub($len($get(myfilename)),$get(mytracknumber_new))))),
$puts(fileartist,$trim($left($get(myfilename_new),$get(myartist))))
$puts(filetitle,$trim($right($get(myfilename_new),$get(mytitle)))))

// Output
$if2(%artist%,$caps($replace($get(fileartist),'_',' ','%20',' ')))

' - '

$if($strcmp(%title%,$get(filen)),
$if($strcmp(%title%,
$caps($replace($get(filetitle),'_',' ','%20',' '))),
%title%,
$caps($replace($get(filetitle),'_',' ','%20',' '))),
%title%)
kzz
Ст. сержант
 
Сообщений: 35
Зарегистрирован: Вт мар 21, 2006 5:20 am
Пункты репутации: 0

Сообщение grounder » Пн май 22, 2006 11:17 pm

Хочу встроить твой код по генерации тегов вставить в свою сборку.
Собственно говоря все получилость только есть кое какие недочеты:
Если файл имеет имя
01 artist - title
все ok но когда имя файла
my title
он это "my" пытается впихнуть в tracknumber.
надо если tracknumber больше нуля тогда записывать иначе удалять
я тут покопался в твоем коде но тяжко без описаний въезжать.
подредактировал но не правильно хотя и треки с номером "my" исчезли
Также и исчезли Первые 2 буквы если в имени файла "my title" что не есть хорошо .

Может у тебя есть уже обновленная версия этого кода?




Добавил теперь определяет файлы типа
101 artist - title
где 1 номер диска 01 номер трека


Код кидать в Global
Код: выделить все
$puts(filen,%_filename%)
$puts(myfilename,$replace($get(filen),'_',' ','%20',' '))
$puts(check,0)

//====================01. Artist - Title =============
$if($strchr($get(check),0),
$if($strcmp($strchr($get(myfilename),'.'),3),
$puts(mytracknumber_new,$strchr($get(myfilename),'.'))
$puts(mytracknumber,$strchr($get(myfilename),'.'))
$puts(filetracknumber,$replace($trim($left($get(myfilename),$get(mytracknumber))),'.',))
$ifgreater($get(filetracknumber),00,
$puts(mytracknumber,$sub($len($get(myfilename)),$get(mytracknumber)))
$puts(myfilename_new,$trim($right($get(myfilename),$get(mytracknumber))))
$puts(check,1),
$if($strcmp($get(filetracknumber),00),
$puts(mytracknumber,$sub($len($get(myfilename)),$get(mytracknumber)))
$puts(myfilename_new,$trim($right($get(myfilename),$get(mytracknumber))))
$puts(check,1),
$puts(myfilename_new,$get(myfilename)))),
$puts(myfilename_new,$get(myfilename))),)
//===============01 Artist - Title =================gr modifed
$if($strchr($get(check),0),
$if($strcmp($strchr($get(myfilename),' '),3),
$puts(mytracknumber_new,$strchr($get(myfilename),' '))
$puts(mytracknumber,$strchr($get(myfilename),' '))
$puts(filetracknumber,$replace($trim($left($get(myfilename),$get(mytracknumber))),' ',))
$ifgreater($get(filetracknumber),0,
$puts(mytracknumber,$sub($len($get(myfilename)),$get(mytracknumber)))
$puts(myfilename_new,$trim($right($get(myfilename),$get(mytracknumber))))
$puts(check,1),

//=============== сдесь надо что то сделать хотя и так работает
$puts(filetracknumber,)
$puts(myfilename_new,$get(myfilename))
$puts(check,1)
),
$puts(myfilename_new,$get(myfilename))),)

//====================101 Artist - Title =============gr added
$if($strchr($get(check),0),
$if($strcmp($strchr($get(myfilename),' '),4),
$puts(mydisc,$if($get(myfilename),
$strcmp($strchr($get(myfilename),'1'),1)
$strcmp($strchr($get(myfilename),'2'),1)
$strcmp($strchr($get(myfilename),'3'),1)

,))
$puts(filedisc,$replace($trim($left($get(myfilename),$get(mydisc))),,)
))
$puts(dischide,$replace($get(filedisc),1,'*',2,'*',3,'*',4,'*'))
$puts(myfilename_n,$insert($get(myfilename),$get(dischide),1))

$if($strcmp($strchr($get(myfilename_n),$get(dischide)),1),
$if($strcmp($strchr($get(myfilename_n),' '),4),
$puts(mytracknumber_new,$strchr($get(myfilename),' '))
$puts(mytracknumber,$strchr($get(myfilename_n),' '))
$puts(filetracknumber,$replace($trim($left($get(myfilename_n),$get(mytracknumber))),$get(dischide),,' ',)))

$ifgreater($get(filetracknumber),00,
$puts(mytracknumber,$sub($len($get(myfilename)),$get(mytracknumber)))
$puts(myfilename_new,$trim($right($get(myfilename),$get(mytracknumber)))
$puts(check,1),
$if($strcmp($get(filetracknumber),00),
$puts(mytracknumber,$sub($len($get(myfilename)),$get(mytracknumber)))
$puts(myfilename_new,$trim($right($get(myfilename),$get(mytracknumber))))
$puts(check,1),
$puts(myfilename_new,$get(myfilename)))),
$puts(myfilename_new,$get(myfilename))),
$puts(myfilename_new,$get(myfilename))),)

//====================[01] Artist - Title =============
$if($strchr($get(check),0),
$if($strcmp($strchr($get(myfilename),'['),1),
$if($strcmp($strchr($get(myfilename),']'),4),
$puts(mytracknumber_new,$strchr($get(myfilename),']'))
$puts(mytracknumber,$strchr($get(myfilename),']'))
$puts(filetracknumber,$replace($trim($left($get(myfilename),$get(mytracknumber))),'[',,']',))
$ifgreater($get(filetracknumber),00,
$puts(mytracknumber,$sub($len($get(myfilename)),$get(mytracknumber)))
$puts(myfilename_new,$trim($right($get(myfilename),$get(mytracknumber))))
$puts(check,1),
$if($strcmp($get(filetracknumber),00),
$puts(mytracknumber,$sub($len($get(myfilename)),$get(mytracknumber)))
$puts(myfilename_new,$trim($right($get(myfilename),$get(mytracknumber))))
$puts(check,1),
$puts(myfilename_new,$get(myfilename)))),
$puts(myfilename_new,$get(myfilename))),
$puts(myfilename_new,$get(myfilename))),)
$puts(myartist,$sub($strchr($get(myfilename_new),-),1))
$puts(mytitle,$sub($len($get(myfilename_new)),$add($get(myartist),1)))
$if($strcmp($get(myartist),-1),
//=========== Сохранение глобальных===============
$set_global(fileartist,%_directoryname%)
$set_global(filetitle,$trim($right($get(filen),$sub($len($get(myfilename)),$get(mytracknumber_new))))),
$set_global(fileartist,$trim($left($get(myfilename_new),$get(myartist))))
$set_global(filetitle,$trim($right($get(myfilename_new),$get(mytitle)))))
$set_global(filen,$get(filen))
$set_global(filetracknumber,$if2(%tracknumber%,$get(filetracknumber)))
$set_global(filedisc,$if2(%disc%,$get(filedisc)))


Вывод
Код: выделить все
$get_global(fileartist)
$get_global(filetitle)
$get_global(filetracknumber)
$get_global(filedisc)
grounder
Старшина
 
Сообщений: 48
Зарегистрирован: Вс мар 26, 2006 10:52 pm
Пункты репутации: 0

Сообщение kzz » Вт май 23, 2006 7:47 am

Такс... Проверка больше ли нулять трэкнумбер или нет нужна для того, чтобы определить текст это или число (обратите внимание на скрин - все работает).
Изображение
Код: выделить все
// Vars - Artist, Title & Tracknumber If There Are No Tags
// Begin
// Переменные
$puts(filen,%_filename%)
// Замена ненужных знаков на пробелы
$puts(myfilename,$replace($get(filen),'_',' ','%20',' '))
// Переменная проверки
$puts(check,0)

// 01. Track - Title
// check = 0?
$if($strchr($get(check),0),
// Проверка положения точки
$if($strcmp($strchr($get(myfilename),'.'),3),
// Получаем положение точки в имени файла (по идее равно оно "3", можно сократить код, но тогда, если надо будет изменять положение точки, надо будет менять число в двух местах)
$puts(mytracknumber,$strchr($get(myfilename),'.'))
// Получаем "номер трэка"
$puts(filetracknumber,$replace($trim($left($get(myfilename),$get(mytracknumber))),'.',))
// Полученный "номер трэка" больше нуля?
$ifgreater($get(filetracknumber),00,
// Получаем длину имени файла без "номера трека"
$puts(myfilename_l,$sub($len($get(myfilename)),$get(mytracknumber)))
// Получаем из имени файла "номера трека"
$puts(myfilename_new,$trim($right($get(myfilename),$get(myfilename_l))))
// Переменная check принимает значение "1", это означает, что все другие проверки проводиться не будут.
$puts(check,1),
// Полученный "номер трэка" равен нулю?
$if($strcmp($get(filetracknumber),00),
// Получаем длину имени файла без "номера трека"
$puts(myfilename_l,$sub($len($get(myfilename)),$get(mytracknumber)))
// Получаем из имени файла "номера трека"
$puts(myfilename_new,$trim($right($get(myfilename),$get(myfilename_l))))
// Переменная check принимает значение "1", это означает, что все другие проверки проводиться не будут.
$puts(check,1),
// Полученный "номер трэка" - не число
$puts(myfilename_new,$get(myfilename)))),
// Точка не находится на нужном месте
$puts(myfilename_new,$get(myfilename))),)

// 01-Track-Title
// check = 0?
$if($strchr($get(check),0),
// Проверка положения тире
$if($strcmp($strchr($get(myfilename),'-'),3),
// Получаем положение тире в имени файла (по идее равно оно "3", можно сократить код, но тогда, если надо будет изменять положение тире, надо будет менять число в двух местах)
$puts(mytracknumber,$strchr($get(myfilename),'-'))
// Получаем "номер трэка"
$puts(filetracknumber,$replace($trim($left($get(myfilename),$get(mytracknumber))),'-',))
// Полученный "номер трэка" больше нуля?
$ifgreater($get(filetracknumber),00,
// Получаем длину имени файла без "номера трека"
$puts(myfilename_l,$sub($len($get(myfilename)),$get(mytracknumber)))
// Получаем из имени файла "номера трека"
$puts(myfilename_new,$trim($right($get(myfilename),$get(myfilename_l))))
// Переменная check принимает значение "1", это означает, что все другие проверки проводиться не будут.
$puts(check,1),
// Полученный "номер трэка" равен нулю?
$if($strcmp($get(filetracknumber),00),
// Получаем длину имени файла без "номера трека"
$puts(myfilename_l,$sub($len($get(myfilename)),$get(mytracknumber)))
// Получаем из имени файла "номера трека"
$puts(myfilename_new,$trim($right($get(myfilename),$get(myfilename_l))))
// Переменная check принимает значение "1", это означает, что все другие проверки проводиться не будут.
$puts(check,1),
// Полученный "номер трэка" - не число
$puts(myfilename_new,$get(myfilename)))),
// Тире не находится на нужном месте
$puts(myfilename_new,$get(myfilename))),)

// 01 Track - Title; 01 - Track - Title
// check = 0?
$if($strchr($get(check),0),
// Проверка положения пробела
$if($strcmp($strchr($get(myfilename),' '),3),
// Получаем положение пробела в имени файла (по идее равно оно "3", можно сократить код, но тогда, если надо будет изменять положение пробела, надо будет менять число в двух местах)
$puts(mytracknumber,$strchr($get(myfilename),' '))
// Получаем "номер трэка"
$puts(filetracknumber,$replace($trim($left($get(myfilename),$get(mytracknumber))),' ',))
// Полученный "номер трэка" больше нуля?
$ifgreater($get(filetracknumber),00,
// Получаем длину имени файла без "номера трека"
$puts(myfilename_l,$sub($len($get(myfilename)),$get(mytracknumber)))
// Получаем из имени файла "номера трека"
$puts(myfilename_new,$trim($right($get(myfilename),$get(myfilename_l))))
$if($strcmp($strchr($get(myfilename_new),'-'),1),
// Если имя файла вида 01 - Track - Title, убирается лишнее тире вначале
$puts(myfilename_new,$trim($right($get(myfilename_new),$sub($len($get(myfilename_new)),$strchr($get(myfilename_new),'-'))))),)
// Переменная check принимает значение "1", это означает, что все другие проверки проводиться не будут.
$puts(check,1),
// Полученный "номер трэка" равен нулю?
$if($strcmp($get(filetracknumber),00),
// Получаем длину имени файла без "номера трека"
$puts(myfilename_l,$sub($len($get(myfilename)),$get(mytracknumber)))
// Получаем из имени файла "номера трека"
$puts(myfilename_new,$trim($right($get(myfilename),$get(myfilename_l))))
$if($strcmp($strchr($get(myfilename_new),'-'),1),
// Если имя файла вида 01 - Track - Title, убирается лишнее тире вначале
$puts(myfilename_new,$trim($right($get(myfilename_new),$sub($len($get(myfilename_new)),$strchr($get(myfilename_new),'-'))))),)
// Переменная check принимает значение "1", это означает, что все другие проверки проводиться не будут.
$puts(check,1),
// Полученный "номер трэка" - не число
$puts(myfilename_new,$get(myfilename)))),
// Пробел не находится на нужном месте
$puts(myfilename_new,$get(myfilename))),)

// [01] Track - Title
// check = 0?
$if($strchr($get(check),0),
// Проверка положения квадратных скобок
$if($strcmp($strchr($get(myfilename),'['),1),
$if($strcmp($strchr($get(myfilename),']'),4),
// Получаем положение квадратных скобок в имени файла (по идее равно оно "1" и "4", можно сократить код, но тогда, если надо будет изменять положение квадратных скобок, надо будет менять число в четрырех местах)
$puts(mytracknumber,$strchr($get(myfilename),']'))
// Получаем "номер трэка"
$puts(filetracknumber,$replace($trim($left($get(myfilename),$get(mytracknumber))),'[',,']',))
// Полученный "номер трэка" больше нуля?
$ifgreater($get(filetracknumber),00,
// Получаем длину имени файла без "номера трека"
$puts(myfilename_l,$sub($len($get(myfilename)),$get(mytracknumber)))
// Получаем из имени файла "номера трека"
$puts(myfilename_new,$trim($right($get(myfilename),$get(myfilename_l))))
// Переменная check принимает значение "1", это означает, что все другие проверки проводиться не будут.
$puts(check,1),
// Полученный "номер трэка" равен нулю?
$if($strcmp($get(filetracknumber),00),
// Получаем длину имени файла без "номера трека"
$puts(myfilename_l,$sub($len($get(myfilename)),$get(mytracknumber)))
// Получаем из имени файла "номера трека"
$puts(myfilename_new,$trim($right($get(myfilename),$get(myfilename_l))))
// Переменная check принимает значение "1", это означает, что все другие проверки проводиться не будут.
$puts(check,1),
// Полученный "номер трэка" - не число
$puts(myfilename_new,$get(myfilename)))),
// Квадратные скобки не находятся на нужных местах
$puts(myfilename_new,$get(myfilename))),
$puts(myfilename_new,$get(myfilename))),)

// Получаем длину строки исполнителя
$puts(myartist,$sub($strchr($get(myfilename_new),-),1))
// Получаем длину строки названия композиции
$puts(mytitle,$sub($len($get(myfilename_new)),$add($get(myartist),1)))

$if($strcmp($get(myartist),-1),
// Тире в названии файла нету
$puts(fileartist,%_directoryname%)
$puts(filetitle,$trim($right($get(filen),$sub($len($get(myfilename)),$get(mytracknumber))))),
// Тире в названии файла есть
$puts(fileartist,$trim($left($get(myfilename_new),$get(myartist))))
$puts(filetitle,$trim($right($get(myfilename_new),$get(mytitle)))))
// End.

// Вывод
// Исполнитель
$get(fileartist)
// Название композиции
$get(filetitle)
// Номер трека
$get(filetracknumber)

Разрешаю добавить в сборку, пользуйтесь на здоровье +)
<!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->Добавил теперь определяет файлы типа
101 artist - title
где 1 номер диска 01 номер трека<!--QuoteEnd--></div><!--QuoteEEnd-->
Сделать несложно, я просто не делал за ненадобностью.

Удачи! <!--emo&:)-->[img]style_emoticons/<#EMO_DIR#>/smile.gif[/img]<!--endemo-->
Последний раз редактировалось kzz Вт май 23, 2006 7:52 am, всего редактировалось 1 раз.
kzz
Ст. сержант
 
Сообщений: 35
Зарегистрирован: Вт мар 21, 2006 5:20 am
Пункты репутации: 0

Сообщение grounder » Вт май 23, 2006 9:18 pm

Большое Спасибо буду тестить :)
grounder
Старшина
 
Сообщений: 48
Зарегистрирован: Вс мар 26, 2006 10:52 pm
Пункты репутации: 0

Сообщение grounder » Чт май 25, 2006 11:11 pm

И все же в переменной $get(filetracknumber) если Полученный "номер трэка" - не число то две буквы остаются. Просто я вставляю это колонку а там иногда проскакивают буквы в колонке с номерами треков плюс ко всему прочему портится оформление у альбомов (Надо или чтоб номертрека был больше нуля или вообще небыло т.е. обнулять)

Лучше так использовать так работает.
Код: выделить все
кусок кода
...
// Полученный "номер трэка" - не число
$puts(filetracknumber,)
$puts(myfilename_new,$get(myfilename)))),
...
grounder
Старшина
 
Сообщений: 48
Зарегистрирован: Вс мар 26, 2006 10:52 pm
Пункты репутации: 0


Вернуться в Foobar2000

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron