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 

[Plugin Request] Сравнение файлов и папок с учетом регистра
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
K.Blade



Joined: 18 Mar 2009
Posts: 43

Post (Separately) Posted: Wed Apr 25, 2012 00:52    Post subject: [Plugin Request] Сравнение файлов и папок с учетом регистра Reply with quote

"Плагин должен реализовать специфичную функцию сравнения", для того чтобы через механизм синхронизации можно было отслеживать отличающиеся в регистре имена файлов.
---
Если такое где-то есть, хотелось бы узнать название плагина.

Кроме того, если можно каким-то образом осуществить "переименование" через тот же механизм синхронизации - это вообще шикарно, но не обязательно.
Тема на основе обсуждения данного вопроса здесь: http://forum.wincmd.ru/viewtopic.php?t=14532
_________________
#204651 Single user licence
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Wed Apr 25, 2012 10:34    Post subject: Reply with quote

Сравнивать регистры технически возможно - написать контентный плагин с функцией сравнения, которая будет сравнивать не содержимое, а регистры. Но переименовывать файлы скопом из окна синхронизации с помощью плагинов не получится.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
K.Blade



Joined: 18 Mar 2009
Posts: 43

Post (Separately) Posted: Wed Apr 25, 2012 15:54    Post subject: Reply with quote

Переименование было бы идеально, но, как писал, не обязательно.
Придется делать это вручную или предложенным в смежной теме bat-ником.
А вот сравнение на общих принципах, чтобы определить наличие изменений пригодилось бы - намного лучше, чем каждый раз сравнивать сформированным через DiskDirExt списки.
_________________
#204651 Single user licence
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Wed Apr 25, 2012 17:14    Post subject: Reply with quote

Кстати, сравнивать плагином тоже не получится. Тотал имена обоих файлов передаёт в одинаковом регистре - как у левого файла (наверное, просто добавляет левое имя к левому и правому путям), поэтому даже с контентным плагином сравнения ничего не получится.

Хотя, можно запросить регистр имени у системы, тогда получится.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
K.Blade



Joined: 18 Mar 2009
Posts: 43

Post (Separately) Posted: Wed Apr 25, 2012 17:25    Post subject: Reply with quote

Печально.
Но как-то же он регистр учитывает - отображает, то он имена нормально. Так что надежда есть!
_________________
#204651 Single user licence
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Wed Apr 25, 2012 17:38    Post subject: Reply with quote

Набросал микроплагинчик.
Code:
MIME-Version: 1.0
Content-Type: application/octet-stream; name="wdx_NameCompare.cab"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="wdx_NameCompare.cab"

TVNDRgAAAAD1BAAAAAAAACwAAAAAAAAAAwEBAAMAAABNQgAAiQAAAAEAAxWKAAAAAAAAAAAAmUDI
jSAAcGx1Z2luc3QuaW5mABABAACKAAAAAADLPnS+IABOYW1lQ29tcGFyZS5sbmcAAAwAAJoBAAAA
AJlASIwgAE5hbWVDb21wYXJlLndkeABNMImeZASaDVuAgI0AIKbZcdMAwgAANCIAV2AA3n/Y7c82
7FkmnStJctlYOMPjFpkNXsxVrat3Y8v2d5r3nt267z7Pe967Bhtjg+CbyTgIg/iaBAgQQIQgShxs
B2qKvohnETPhDw9tB6BalnSEzwAAzACA0QEAPlim+eN1ghzAG27d3IFOhK4sXihJsyFuTq+2Hdsh
WzXA00TWJGRERIJFfJngCxFBhpAn8f/////5/wDEAAAAAEBmZgCiAlrVLtCAEkxCkySE/2Sd3v9R
XiyitYPJKxjhKZppBBLzDgNpxcuLeTWqRBWa+oCYIikW54P5w9awxYql5K7BQF7B5CFG/OCUNa2k
dA6IokOIS2lXHTaO+a2v9Yw0/aakfSlcGsTzMgswinJzJU5aNHj/rzEUXmJKdFR9XGXolnFhuRb8
cEl6nKowLBJ7WsdSvB8DO8YV5V1g/3IWz3lyiWPa27du7Xv15va2Pdil5eaOrc1mmxC53zZkdRXW
33K37WttwGdtsoKRe6GbGr62a+P2Fn7QJx59ok3OK89fYVSDwAilXTx6K/R1QQcwsRojc9mcg0iP
z0rbhVbzMkg7HL/MUlIrrGAROpLEoVGD+GGG/8T0MGV6sIFhKObU2TnMKxc1253ONCht/mpXR9qx
9dVrvKvAPs30i9W3tHnQUtxad/r3NaU+4sS09aCYaQesNpkAMAr2E17+IJuSOKhTQwre8vuW5Gen
nDtE/IQiaaARzwn9Fn3OCI3k4OIuxdzEtIaNvhmBpZaNDjHCdrJwdWBT7EPUqcl9NKhZkpR+Fzp3
0DBSoxNjgxZ48HA0dMSTMz8ccgSDCt+Zb79BhujCT391DD5OZPLXkHk906hdSVxlv56VMgMbM2Uk
L00nOguh9OYZTHax9KnVHvtzD01hdtgMdti9Zs3zbB+U1NrBzsQP5sf7QK1mqD5Ub6EAkm6mXb+e
WY8fWCZfQAztZepvJhgtxZdFk5lZjs8+mzxoCXwqWomINMRNRTTM+kfVq2KwcF3/AJdn83SqqXLq
722E4Cd5bwIN1D0V3lxVUmYm4aG1k71iLR1gFhv1G+XYlyb32SKQp06uymrvlT10EbrK196acddp
N9fVjNBbevgminFtoOD1GFdMyuDVT+a1+8d/I2kdBdyv3WckGIPymvRABwAaffhDpcWT0gag34dd
YKb46BYpiOCI1e9Nzpkr7ZeMFBhBPck3/vWTBUgP/bR531RHvZpf6PS5UVzXA4ecZyPNR6hSD6B/
tNwBpkn8Db1Hv9V9oLF/+jlIDquyLH+MJf5ADgPYxSfhIDb5dTA43ST//hfTBaPIvtuvrukCmzBy
wKZLSFn66bfE6t6RKsXXW377EgnLs0yWbBzLXdiuLcJpjX9Pefh7+Cnrjc+RLm1T4G/v8UfXG54j
990eWVeFCAyK/7DmxxeAzhaMd3jnwZ26YqUmG1boD/tFr7YNHM6JTvfkhG+1v79QRP5okonOJ0Il
hJowPdE2AVuiBwjjdABg


Использование:
0. Декодировать и установить как информационный модуль
1. Открыть синхронизацию
2. Поставить галку "по содержимому" и нажать кнопку "++"
3. Поставить галку "Сравнение с помощью плагинов"
4. Добавить маску * и желаемое действие для файлов, регистр имён которых различается (разумеется, действие выбирать в модуле namecompare)
5. Нажать кнопку "Сравнить" в диалоге синхронизации

В зависимости от выбранного действия тотал будет по-разному обозначать файлы, регистр имён которых различается: помечать красным вопросиком и пропускать сравнение, помечать разными или помечать одинаковыми, но рисовать специальную иконку равенства (красную надпись CASE). Любое из этих действий позволит выполнить синхронизацию всех остальных файлов, оставив файлы с именами в разных регистрах на закуску.

С папками работать не будет, т.к. для папок тотал не вызывает функции модулей, и неясно, как определять, на какую глубину надо проверять регистр имён.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
K.Blade



Joined: 18 Mar 2009
Posts: 43

Post (Separately) Posted: Wed Apr 25, 2012 18:29    Post subject: Reply with quote

MVV
Спасибо отлично работает, то что нужно.
Я нельзя провести сравнение различающихся регистром файлов по содержимому? Т.е. чтобы различались в списке те, что различаются и по содержимому и по регистру, и те кто идентичны по содержимому, но различаются регистром. Или это сложно?

Жаль относительно папок, но это уже точно можно проверить вручную. Относительно глубины: предполагалась бы все подпапки.
_________________
#204651 Single user licence
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Wed Apr 25, 2012 20:53    Post subject: Reply with quote

K.Blade wrote:
Жаль относительно папок, но это уже точно можно проверить вручную. Относительно глубины: предполагалась бы все подпапки.

Предположим, у тебя две корневые папки: C:\Test и D:\TEST. Откуда я узнаю, что имена самих папок Test и TEST сравнивать уже не нужно? Тотал мне дает лишь пары файлов, которые нужно сравнить.

K.Blade wrote:
Я нельзя провести сравнение различающихся регистром файлов по содержимому? Т.е. чтобы различались в списке те, что различаются и по содержимому и по регистру, и те кто идентичны по содержимому, но различаются регистром. Или это сложно?

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

И вообще, не сбивай меня с толку Very Happy Это уже работает. Если имена файлов абсолютно идентичны (регистр совпадает), то мой плагин просто говорит тоталу продолжить сравнение - т.е. дальше тотал сам запустит сравнение по содержимому. Вот и получится, что файлы с разными регистрами или с разным содержимым будут помечены неравенством, как тебе и нужно. Тебе лишь нужно выбрать режим [=namecompare.Пометить различными]. А при выборе режима [=namecompare.Пропустить сравнение] будет ещё лучше: файлы, разные по регистру, будут помечены особым знаком ? (тотал считает их одновременно потенциально одинаковыми и потенциально разными), а файлы, разные по содержимому, но с одинаковым регистром, будут помечены неравенством, как обычно.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
K.Blade



Joined: 18 Mar 2009
Posts: 43

Post (Separately) Posted: Wed Apr 25, 2012 23:09    Post subject: Reply with quote

MVV wrote:
Предположим, у тебя две корневые папки: C:\Test и D:\TEST. Откуда я узнаю, что имена самих папок Test и TEST сравнивать уже не нужно? Тотал мне дает лишь пары файлов, которые нужно сравнить.

Ну, да, наверное. Просто логично, что если в левой панели открыта папка, то все ее подпапки и файлы надо сравнить со всеми подпапками и файлами в правой. Но Тотал, как понимаю, выдает только файлы - именно поэтому он пустые папки не удаляет при синхронизации видно.
Т.е. нельзя найти путь к тому каталогу из которого начинается сравнение.

MVV wrote:
И вообще, не сбивай меня с толку Very Happy Это уже работает.

Smile
Нет придела совершенству.
Но вообще про "пропустить сравнение" я не подумал. Оно же позволит спокойно провести синхронизацию по содержимому, что-то я туплю - да.
_________________
#204651 Single user licence
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10255
Location: Россия, Саратов

Post (Separately) Posted: Sat Aug 10, 2013 12:59    Post subject: Reply with quote

MVV
Хорошо бы сделать и 64-битную версию плагина.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10255
Location: Россия, Саратов

Post (Separately) Posted: Mon Oct 14, 2013 11:38    Post subject: Reply with quote

MVV
Ещё раз: хорошо бы сделать 64-битную версию плагина. И заодно его нормально выложить, чтобы удобно скачивать можно было.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Mon Oct 14, 2013 19:30    Post subject: Reply with quote

Ага, я пропустил тот пост как-то. А что, кто-то ещё пользуется? Very Happy А то самое ленивое - описание писать...

NameCompare
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Mon Oct 14, 2013 20:17    Post subject: Reply with quote

MVV
Да, спасибо.
А заодно может и Expander2 стоит обновить до 64-х бит?
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Mon Oct 14, 2013 21:03    Post subject: Reply with quote

LonerD wrote:
А заодно может и Expander2 стоит обновить до 64-х бит?

Ход мыслей:
1. Не хочу выкладывать от своего имени что-то, не доведенное до ума в моем представлении, а желания тратить на это время 0.
2. Разве что просто собрать 64-битку и на обменник выложить.
3. Ой, там же дельфя, а дельфей 64-битных у меня нету... А долбаться с лазарусом точно не буду. Исходник в архиве - собирайте сами. Smile

В случае с NameCompare я просто открыл проект и добавил новую платформу в свойствах.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10255
Location: Россия, Саратов

Post (Separately) Posted: Mon Oct 14, 2013 21:58    Post subject: Reply with quote

MVV
Пользуюсь, а как же. Спасибо за быстрое реагирование.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
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