Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Сортировка по части имени
Goto page 1, 2, 3  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Sun Jan 24, 2010 11:41    Post subject: Сортировка по части имени Reply with quote

Имеется много альбомов с музыкальными файлами. Все имена имеют один формат:
Code:
Первый альбом
01 Какая-то песня
02 Другая песня
...

Второй альбом
01 Еще одна песня
02 Какая-то песня
...
Задача: найти общие названия треков (в примере выше "Какая-то песня"), но без учета номера.

Есть очевидное, работающее, но очень неудобное решение:
1. Скопировать все куда-то;
2. Ctrl+B;
3. Переименовать все с маской [N4-].
4. Искать в исходной коллекции по каждому имени в отдельности.

Есть более изощренное решение:
1. Ctrl+B;
2. Вызвать переименование [N4-], но Start не нажимать;
3. Вызвать редактирование имен;
4. В тестовом редакторе отсортировать по алфавиту;
5. Искать в исходной коллекции по каждому имени в отдельности.

Оба решения имеют недостатки. В первом случае это копирование гектаров информации ради двух минут работы. Во втором - наличие редактора, умеющего сортировать строки. Например, навороченный EmEditor этого делать не умеет, а простенький Texter - пожалуйста. (Кстати, а ваш любимый тектовый редактор имеет такой инструмент?!).

Общий недостаток двух решений - необходимость обращаться к исходной коллекции для каждого имени в отдельности!

Третье решение:
Создать пользовательскую колонку [tc.name:4-] и отсортировать по ней. Просто, изящно, быстро, удобно. Но... не работает!

Сортировка получается не по [tc.name:4-], а по [tc.name]! То есть по полному имени, а не по его части.

Отсюда вопрос: это штатное поведение сортировки по пользовательским колонкам? Если да, то разве так должно быть? Может, кинуть в Гислера запросом?

Или кто-то предложит четвертый способ?

[Добавлено]
Кстати, предвосхищая предложение сортировать по тегу Title:
1. Иногда номер зашит в тег;
2. Иногда тег тупо отсутствует (пп. 1 и 2 - реальность для тех самых моих альбомов, честно скачанных с интернета).
3. В конце концов, хрен с ними, с песнями. Разве пользовательские колонки не должны обеспечивать сортировки по части поля?!
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Sun Jan 24, 2010 13:24    Post subject: Reply with quote

Вахмурка wrote:
5. Искать в исходной коллекции по каждому имени в отдельности.

Если редактор хороший, то искать можно не по отдельности, а чем-нибудь типа ^(.*)\n\1\n
Если надо оставить только дубликаты, а остальное убрать, чтоб глаза не мозолило, можно в три прохода: сначала таким поиском заменить на что-нибудь вида :\1\n (двоеточие выбрано как символ, не разрешённый в именах файлов), потом все строки, не начинающиеся с двоеточия, удалить, ну и третьим проходом само двоеточие грохнуть. Если это частая операция, можно сделать макрос.

Вахмурка wrote:
Например, навороченный EmEditor этого делать не умеет

Ну, вообще-то, плагины есть. Не говоря уж о том, что в девятой версии команды сортировки появилась и в самом EE (но плагин удобнее, т.к. позволяет работать с выделенными строками).

Вахмурка wrote:
Общий недостаток двух решений - необходимость обращаться к исходной коллекции для каждого имени в отдельности!

Вот этого предложения я не понял…

Вахмурка wrote:
Сортировка получается не по [tc.name:4-], а по [tc.name]! То есть по полному имени, а не по его части.

Отсюда вопрос: это штатное поведение сортировки по пользовательским колонкам? Если да, то разве так должно быть? Может, кинуть в Гислера запросом?

Штатное и документированное.

Вахмурка wrote:
Или кто-то предложит четвертый способ?

Использовать script_wdx, написать поле, которое выдаёт урезанное имя, и по нему сортировать.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Sun Jan 24, 2010 13:57    Post subject: Reply with quote

Quote:
а чем-нибудь типа ^(.*)\n\1\n
Ты имеешь в виду регулярные выражения самого ЕЕ? Если да, то вопрос не в этом. Задача-то решаемая, просто хотелось ее решить средствами самого ТС, без стороннего софта.
Quote:
Ну, вообще-то, плагины есть. Не говоря уж о том, что в девятой версии команды сортировки появилась и в самом EE (но плагин удобнее, т.к. позволяет работать с выделенными строками).
Ясно. У меня пятая. Как ты мне дал на него наводочку, так я и не обновлялся.
Quote:
Вот этого предложения я не понял
Тем или иным способом я нашел, что "Какая-то песня" под разными номерами присутствует в нескольких альбомах. Теперь надо открывать в ТС поиск по имени, выводить на панель и далее работать уже с этими "почти одинаковыми" именами.
Quote:
Штатное и документированное
А вот в этом месте, пожалуйста, подробнее. Нашел только главу справки "Tabstop header", но там нет указания на то, что двоеточие не влияет на сортировку.
Quote:
Использовать script_wdx
Попробую.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Rodny



Joined: 24 Jan 2007
Posts: 949
Location: Могилёв, Беларусь

Post (Separately) Posted: Sun Jan 24, 2010 14:02    Post subject: Reply with quote

Вахмурка
Есть regexp_wdx
Quote:
Контентный плагин действующий по подобию Multy Rename Tool, но без реального переименования файлов.
Может быть полезен для сортировки файлов в желаемом порядке
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Sun Jan 24, 2010 14:24    Post subject: Reply with quote

Quote:
Есть regexp_wdx
Спасибо, сработало.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Sun Jan 24, 2010 14:49    Post subject: Reply with quote

Вахмурка wrote:
Тем или иным способом я нашел, что "Какая-то песня" под разными номерами присутствует в нескольких альбомах. Теперь надо открывать в ТС поиск по имени, выводить на панель и далее работать уже с этими "почти одинаковыми" именами.

Ясно. Но задача слишком специфична. Я сходу вообще не могу придумать, как это можно было бы улучшить, не считая добавления специальных команд и диалогов, единственное предназначение которых — разобраться с абсолютно такой ситуацией, как ты описал, и ни с какой другой.

Разве что расширить возможности Тотала по поиску дубликатов, но это уже давно предлагалось.

Вахмурка wrote:
А вот в этом месте, пожалуйста, подробнее. Нашел только главу справки "Tabstop header", но там нет указания на то, что двоеточие не влияет на сортировку.

Справка wrote:
Диалоговое окно: Настройка набора колонок
Содержимое поля данных
[=имя_плагина.имя_поля.единица_измерения:4-7]

То же, что и выше, но для подстрок (в данном примере будут вставлены символы с 4 по 7; допустимы те же выражения, что и для шаблона [N] в Инструменте группового переименования). Учтите, что эти выражения действуют только на отображение данных, сортировка будет производиться по полной строке, а не по указанной подстроке!

_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Sun Jan 24, 2010 17:47    Post subject: Reply with quote

Если файлы одинаковые, то вопросов нет. Но представим себе, что звук один и тот же, а теги (как правило, только название альбома) - разные. Тогда с точки зрения ТС это - разные файлы, и поиск дубликатов ничего не даст. То есть содержание "почти такое же", имя "почти такое же"...

Мне все же кажется, что подобная задача вставала перед другими пользователями. Или я что, один мр3 слушаю?
Quote:
Учтите, что эти выражения действуют только на отображение данных, сортировка будет производиться по полной строке, а не по указанной подстроке!
Хитрый какой - в официальной справке нет того, что ты отметил синим! Так что, строго говоря, сам Гислер это свойство НЕ документировал.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Sun Jan 24, 2010 17:52    Post subject: Reply with quote

Вахмурка wrote:
Но представим себе, что звук один и тот же, а теги (как правило, только название альбома) - разные. Тогда с точки зрения ТС это - разные файлы, и поиск дубликатов ничего не даст. То есть содержание "почти такое же", имя "почти такое же"...

Поэтому я и написал не об использовании поиска дубликатов, а о расширении оного.

Вахмурка wrote:
ак что, строго говоря, сам Гислер это свойство НЕ документировал.

Ну раз мы написали, значит, Гислер где-то об этом говорил: либо в истории, либо на форуме. Своевольно объявлять такие вещи фичами мы просто не имеем права.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sun Jan 24, 2010 20:34    Post subject: Reply with quote

Вахмурка wrote:
Мне все же кажется, что подобная задача вставала перед другими пользователями
http://www.zldo.narod.ru/muzcatsd.html
http://pinterpeti.hu/html/emac.htm
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Sun Jan 24, 2010 21:11    Post subject: Reply with quote

Они позволяют искать "почти совпадающие" имена? Вряд ли. И, кстати, сегодня же, при изучении тех альбомов, столкнулся с еще одной схожей проблемой. Разные (или одна и та же?) песни называются "Alleluiah", "Hallelujah", "Aleluya", и т.д. Вот бы еще научить ТС искать такие "почти одинаковые", "похожие" имена...
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Sun Jan 24, 2010 21:14    Post subject: Reply with quote

Вахмурка
Имена, похожие на нечто заранее заданное, искать можно:
http://wincmd.ru/plugring/similarity.html
А искать все возможные сочетания, где имена похожи между собой, — это, увы, пока никак. Опять-таки, кабы поиск дубликатов разрешал использовать плагины…
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Sun Jan 24, 2010 22:24    Post subject: Reply with quote

Оффтоп
CaptainFlint wrote:
А искать все возможные сочетания, где имена похожи между собой, — это, увы, пока никак

Ровно для тех же целей (поиск одинаковых альбомов с разным написанием имени) накатал программульку. Суть такова: в окошко копипастится список каталогов (один каталог - один альбом, у меня примерно так всё хранится), прога выдаёт релевантность для всех вхождений списка в виде:
Code:

99%: [2002] Pete Namlook & Klaus Schulze - Dark Side of the Moog IX\ <-> [2002] Pete Namlook & Klaus Schulze - The Dark Side of the Moog IX\
98%: [2006] The Pinker Tones - The Million Colour Revolution\ <-> [2006] The Pinkertones - The Million Colour Revolution\
98%: [2001] Juno Reactor - Master of the Universe\ <-> [2001] Juno Reactor - Masters of the Universe\
95%: [1996] VA - Les contes d'Hoffmann CD2\ <-> [1996] VA - Les contes d'Hoffmann CD3\
95%: [1996] Pete Namlook, Klaus Schulze & Bill Laswell - The Dark Side of the Moog IV\ <-> [1997] Pete Namlook, Klaus Schulze & Bill Laswell - The Dark Side of the Moog VI\
95%: [1996] Man With No Name - Earth Moving the Sun\ <-> [1998] Man With No Name - Earth Moving The Sun\

Единственный недостаток - тормозной алгоритм скопипащенный из какой-то базы знаний, пять тысяч строк сравнивались на Q6600 порядка 12 часов. Сначала хотел распараллелить алгоритм, чтобы задействовать все четыре ядра процессора, но, видимо, потупел с годами, не справился, плюнул и подождал, благо необходимость единоразовая.
Если кому такая утилитка нужна - могу выложить с исходниками.
_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Sun Jan 24, 2010 23:10    Post subject: Reply with quote

2D1P
Забавно будет пощупать.

А почему ты, написавший хренову гору утилит и плагинов, не хочешь сляпать страничку (хоть на том же Яндексе) и выложить туда свое свое добро?
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Mon Jan 25, 2010 09:34    Post subject: Reply with quote

2Вахмурка: Своё добро я на TCKB выкладываю. На общих основаниях.
_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Mon Jan 25, 2010 12:35    Post subject: Reply with quote

Ясно. Это я к тому, что обычно либо дают точное название утилитки (типа пусть сами ищут), либо выкладывают сцылу. Не сориентируешь на местности, как твою утилитку по поиску подобных имен попробовать?
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page 1, 2, 3  Next
Page 1 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group