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

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

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

Post by Kerberos464 » Wed 24 Nov, 2010 21:05

в сборке от 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 123 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: 164
Joined: Wed 10 Aug, 2005 09:20

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

Post by GMax » Wed 24 Nov, 2010 21:33

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

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

звучит сложно, но если намакросить, может оказаться быстрее. только буфер портится.

User avatar
John Doe
Бюрократ
Posts: 11127
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 72 times

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

Post by John Doe » Wed 24 Nov, 2010 22:55

А я почему-то пользуюсь для этих целей Advanced compare.

User avatar
Tim Sobolev
Posts: 693
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Contact:

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

Post by Tim Sobolev » Thu 25 Nov, 2010 07:01

John Doe wrote:А я почему-то пользуюсь для этих целей Advanced compare.
Ну я пользуюсь Deep Compare для сравнения содержимого панелей по именам/размерам, но он показывает различия и выделяет из двух подкаталогов тот, который больше/новее. А макрос используется для выделения файлов с одинаковыми именами на обеих панелях, т.о. очень удобно, к примеру, обновлять файлы в сборке из архивов плагов :).
fibre wrote:я этот макрос чуть видоизменил самым простым способом, который пришёл мне в голову - вначале сравнивается количество элементов на обеих панелях и после этого сравнение идёт по той панели, на которой элементов меньше.
Идея здравая, но реализация не очень :). Проще перед перебором перейти по табу на панель с меньшим количеством файлов, если она не активная, использовать старый алгоритм перебора, а потом если был переход по табу вернутся обратно. Текст макроса выложу, если нужно :wink:.

Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Contact:

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

Post by Kildor » Thu 25 Nov, 2010 07:11

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

xmpp:kildor@jabber.ru

User avatar
Tim Sobolev
Posts: 693
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Contact:

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

Post by Tim Sobolev » Thu 25 Nov, 2010 07:29

Kildor wrote:Я тоже пользуюсь advCompare. Но чисто так, для спортивного интереса макрос я переделал.
Вот, тоже отличный подход :)! В принципе работа с переменными практически не должна влиять на скорость, так что такой подход ещё предпочтительней моего варианта.

User avatar
John Doe
Бюрократ
Posts: 11127
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 72 times

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

Post by John Doe » Thu 25 Nov, 2010 10:17

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: 1238
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 17 times
Been thanked: 1 time

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

Post by Kerberos464 » Thu 25 Nov, 2010 10:21

круто! причём быстро работает, спасибо :)
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: 11127
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 72 times

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

Post by John Doe » Thu 25 Nov, 2010 10:22

fibre wrote:в сборке от Tim Sobolev подсмотрел макрос, который сравнивает списки файлов/папок на обеих панелях и выделяет файлы/папки с одинаковыми именами.
История началась ещё в теме Пометка файлов на панелях.

Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Contact:

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

Post by Kildor » Thu 25 Nov, 2010 10:53

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

xmpp:kildor@jabber.ru

User avatar
Tim Sobolev
Posts: 693
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Contact:

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

Post by Tim Sobolev » Thu 25 Nov, 2010 11:02

John Doe wrote:
Отнюдь не айс, портит буфер обмена Оказался не прав :oops: .

User avatar
Kerberos464
Posts: 1238
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 17 times
Been thanked: 1 time

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

Post by Kerberos464 » Thu 25 Nov, 2010 11:05

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: 11127
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 72 times

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

Post by John Doe » Thu 25 Nov, 2010 11:06

Ага, clip(5) для этого.

User avatar
zg
zero-gravity
Posts: 5246
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

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

Post by zg » Thu 25 Nov, 2010 11:07

Tim Sobolev wrote:Отнюдь не айс, портит буфер обмена.
это не так.

User avatar
John Doe
Бюрократ
Posts: 11127
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 72 times

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

Post by John Doe » Thu 25 Nov, 2010 11:10

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

Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Contact:

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

Post by Kildor » Thu 25 Nov, 2010 11:44

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

xmpp:kildor@jabber.ru

Post Reply

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