макрос "Выделить одинаковые файлы на обеих панелях", ver.2

Здесь обсуждается всё, что касается макросов.
User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

макрос "Выделить одинаковые файлы на обеих панелях", ver.2

Post by Kerberos464 »

в сборке от Tim Sobolev подсмотрел макрос, который сравнивает списки файлов/папок на обеих панелях и выделяет файлы/папки с одинаковыми именами.
он работает так: последовательно перебираются все элементы на активной панели и при совпадении имени с элементом на пассивной панели, этот файл/папка выделяется на обеих панелях.
однако, у макроса есть небольшая проблема производительности - если активной панели много элементов, то макрос тормозит, не очень сильно, но неприятно, на папке с ~3000 файлов требуется около 5 секунд.

я этот макрос чуть видоизменил самым простым способом, который пришёл мне в голову - вначале сравнивается количество элементов на обеих панелях и после этого сравнение идёт по той панели, на которой элементов меньше.
т.е. если на одной панели 10 файлов, а на второй 10000, то мой макрос работает в 1000 раз быстрее, чем оригинальный =) а если на каждой панели по 10000 файлов, то скорость одинаковая, или даже мой макрос медленнее, за счёт дополнительной проверки.

в общем, вот сам макрос, по-умолчанию назначен на AltMultiply (Alt + звёздочка на цифровой клавиатуре)
1. в виде обычного текста:
2. в виде reg-файла, multi-line:
3. в виде reg-файла, single-line:
4. и в аттаче reg-файл, для тех, кому лень копипастить текст в редактор.

этот макрос войдёт и в мою сборку :) (на правах пиара)
Attachments
Select same filenames on both panels (AltMultiply).reg.zip
reg-файл, click'n'go!
(640 Bytes) Downloaded 181 times
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
GMax
Posts: 165
Joined: Wed 10 Aug, 2005 09:20
Has thanked: 1 time

Re: макрос "Выделить одинаковые файлы на обеих панелях", ver

Post by GMax »

я для подобной операции использую такой алгоритм:

а) выбрать панель (любую или где файлов меньше)
б) выделить всё на той панели
в) скопировать имена в буфер
г) переключиться на другую панель
д) выделить имена из буфера ( Panel.Select(0,1,2,clip(0)) )
потом если надо и на первой повторить выделение, повторяем пункты в) до д) для второй панели, перед пунктом д) сбросив выделение всего.

звучит сложно, но если намакросить, может оказаться быстрее. только буфер портится.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: макрос "Выделить одинаковые файлы на обеих панелях", ver

Post by John Doe »

А я почему-то пользуюсь для этих целей Advanced compare.
User avatar
Tim Sobolev
Posts: 729
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time
Been thanked: 7 times

Re: макрос "Выделить одинаковые файлы на обеих панелях", ver

Post by Tim Sobolev »

John Doe wrote:А я почему-то пользуюсь для этих целей Advanced compare.
Ну я пользуюсь Deep Compare для сравнения содержимого панелей по именам/размерам, но он показывает различия и выделяет из двух подкаталогов тот, который больше/новее. А макрос используется для выделения файлов с одинаковыми именами на обеих панелях, т.о. очень удобно, к примеру, обновлять файлы в сборке из архивов плагов :).
fibre wrote:я этот макрос чуть видоизменил самым простым способом, который пришёл мне в голову - вначале сравнивается количество элементов на обеих панелях и после этого сравнение идёт по той панели, на которой элементов меньше.
Идея здравая, но реализация не очень :). Проще перед перебором перейти по табу на панель с меньшим количеством файлов, если она не активная, использовать старый алгоритм перебора, а потом если был переход по табу вернутся обратно. Текст макроса выложу, если нужно :wink:.
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Re: макрос "Выделить одинаковые файлы на обеих панелях", ver

Post by Kildor »

Я тоже пользуюсь advCompare. Но чисто так, для спортивного интереса макрос я переделал. (как обычно, запускать через selmacro: /fs путь к файлу
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru
User avatar
Tim Sobolev
Posts: 729
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time
Been thanked: 7 times

Re: макрос "Выделить одинаковые файлы на обеих панелях", ver

Post by Tim Sobolev »

Kildor wrote:Я тоже пользуюсь advCompare. Но чисто так, для спортивного интереса макрос я переделал.
Вот, тоже отличный подход :)! В принципе работа с переменными практически не должна влиять на скорость, так что такой подход ещё предпочтительней моего варианта.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: макрос "Выделить одинаковые файлы на обеих панелях", ver

Post by John Doe »

Code: Select all

clip(5)
panel.select(0,1)
CtrlShiftIns
panel.select(1,1,2,clip(0))
Tab CtrlShiftIns Tab
panel.select(0,0)
panel.select(0,1,2,clip(0))
User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

Re: макрос "Выделить одинаковые файлы на обеих панелях", ver

Post by Kerberos464 »

круто! причём быстро работает, спасибо :)
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: макрос "Выделить одинаковые файлы на обеих панелях", ver

Post by John Doe »

fibre wrote:в сборке от Tim Sobolev подсмотрел макрос, который сравнивает списки файлов/папок на обеих панелях и выделяет файлы/папки с одинаковыми именами.
История началась ещё в теме Пометка файлов на панелях.
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Re: макрос "Выделить одинаковые файлы на обеих панелях", ver

Post by Kildor »

Клёва. Хотя я правильно понимаю, что оба подхода не делают разницы между папками и файлами?
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru
User avatar
Tim Sobolev
Posts: 729
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time
Been thanked: 7 times

Re: макрос "Выделить одинаковые файлы на обеих панелях", ver

Post by Tim Sobolev »

John Doe wrote:
Отнюдь не айс, портит буфер обмена Оказался не прав :oops: .
User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

Re: макрос "Выделить одинаковые файлы на обеих панелях", ver

Post by Kerberos464 »

Tim Sobolev wrote:Отнюдь не айс, портит буфер обмена.
у меня не портит.
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: макрос "Выделить одинаковые файлы на обеих панелях", ver

Post by John Doe »

Ага, clip(5) для этого.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: макрос "Выделить одинаковые файлы на обеих панелях", ver

Post by zg »

Tim Sobolev wrote:Отнюдь не айс, портит буфер обмена.
это не так.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: макрос "Выделить одинаковые файлы на обеих панелях", ver

Post by John Doe »

Kildor wrote:Клёва. Хотя я правильно понимаю, что оба подхода не делают разницы между папками и файлами?
В данном случае это намеренно.
А как именно предлагается её делать?
Post Reply

Return to “Обсуждение макросов”