Duplicate Fighter (Анти-дубликатор)

Здесь выкладываются готовые к использованию макросы и скрипты.
Shmuel
Posts: 4946
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

Duplicate Fighter (Анти-дубликатор)

Postby Shmuel » Thu 29 Oct, 2015 23:02

Захотелось создать альтернативу плагину SortStrings по части работы с дубликатами строк.
Вот, что получилось (надеюсь развивать это дальше, но будет видно).

dupfighter-v11.7z
(5.59 KiB) Downloaded 66 times
Last edited by Shmuel on Mon 16 May, 2016 15:49, edited 10 times in total.

Shmuel
Posts: 4946
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

Duplicate Fighter (Анти-дубликатор)

Postby Shmuel » Fri 30 Oct, 2015 17:28

Кто-нибудь может объяснить, зачем нужна "очистка" строки-дубликата, т.е. замена её пустой строкой? В чём смысл?
Я сделал такую операцию, поскольку она есть в плагине SortStrings, но что-то не могу понять, зачем это может понадобиться.
Удалить дубликат - понятно, а очистить - не очень.

Shmuel
Posts: 4946
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

Duplicate Fighter (Анти-дубликатор)

Postby Shmuel » Fri 30 Oct, 2015 19:31

Заменил в первом сообщении вложение на версию 2.
- Справка - как коммент в начале файла (пока только на английском).
- Вместо меню - диалог.
- Добавилась (опциональная) возможность использовать Lua-выражения.
- Почти не тестировалось, буду благодарен за багрепорты.

fml2
Posts: 490
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 5 times

Duplicate Fighter (Анти-дубликатор)

Postby fml2 » Sat 31 Oct, 2015 00:01

Я самим макро еще не пользовался, а только почитал справку, т.е. комментарий в начале файла. И у меня такие замечания:

1.

2. (главное) Мне кажется, было бы логичнее, если бы дупликатами считались строки, для которых булевский результат выражения true, а не false. Т.е. смысл выражения таков: "Это -- дупликат?"

Shmuel
Posts: 4946
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

Duplicate Fighter (Анти-дубликатор)

Postby Shmuel » Sat 31 Oct, 2015 09:03

fml2, спасибо за ваши замечания.

По поводу справки: ещё буду редактировать, сравню с вашим вариантом.

По поводу трактовки булевого результата: вначале сделал именно так, как вы предлагаете, то-есть true означал дубликат. Но потом поймал себя на ощущении, что мне важнее определить, что хочется оставить, чем то, что хочется удалить, после чего сделал как сейчас. Буду думать ещё.

fml2
Posts: 490
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 5 times

Duplicate Fighter (Анти-дубликатор)

Postby fml2 » Sat 31 Oct, 2015 10:33

Shmuel wrote:Но потом поймал себя на ощущении, что мне важнее определить, что хочется оставить, чем то, что хочется удалить

Я согласен, что возможны обе трактовки. Но тогда надо бы заголовок поля "Expression" сделать более информативным, т.е. чтобы прямо в диалоге было понятно, что означает выражение (true -- это "оставить" или "стереть"?).

Shmuel
Posts: 4946
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

Duplicate Fighter (Анти-дубликатор)

Postby Shmuel » Sun 01 Nov, 2015 17:32

Заменил в первом сообщении вложение на версию 3.
- Справка поправлена и расширена.
- При отсутствии выделения обрабатывается весь файл.
- Изменена и упрощена логика определения дубликатов (описано в справке).

Любые замечания и предложения приветствуются.

Arama
Posts: 60
Joined: Mon 01 Jun, 2015 12:14
Has thanked: 1 time
Been thanked: 1 time

Duplicate Fighter (Анти-дубликатор)

Postby Arama » Mon 02 Nov, 2015 17:33

Shmuel,

Неприятный момент, удаляет как дубликаты пустые строки, что ломает форматирование, так задумано?

Shmuel
Posts: 4946
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

Duplicate Fighter (Анти-дубликатор)

Postby Shmuel » Mon 02 Nov, 2015 17:52

Пустые строки равны друг другу, поэтому воспринимаются как дубликаты и удаляются.
Можно, конечно, обойти это:

Code: Select all

╔═══════════════════════ Duplicate Fighter ═══════════════════════╗
║                                                                 ║
║ (•) 1 Remove duplicates                                         ║
║ ( ) 2 Clear duplicates                                          ║
║ ( ) 3 Remove non-uniques                                        ║
║ ( ) 4 Clear non-uniques                                         ║
║                                                                 ║
║ [x] Use Expression            [ ] Convert to boolean            ║
║ Expression:                                                     ║
║ L~="" and L                                                    ↓║

А может опцию добавить стоит?

Shmuel
Posts: 4946
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

Duplicate Fighter (Анти-дубликатор)

Postby Shmuel » Mon 02 Nov, 2015 21:04

Добавил опцию "Сохранять пустые строки". Обновил вложение в первом сообщении.

Arama
Posts: 60
Joined: Mon 01 Jun, 2015 12:14
Has thanked: 1 time
Been thanked: 1 time

Duplicate Fighter (Анти-дубликатор)

Postby Arama » Tue 03 Nov, 2015 09:27

Спасибо!

Arama
Posts: 60
Joined: Mon 01 Jun, 2015 12:14
Has thanked: 1 time
Been thanked: 1 time

Duplicate Fighter (Анти-дубликатор)

Postby Arama » Tue 03 Nov, 2015 10:57

А можно выводить статистику работы? Ну там столько строк удалено...

Shmuel
Posts: 4946
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

Duplicate Fighter (Анти-дубликатор)

Postby Shmuel » Tue 03 Nov, 2015 12:44

Добавлен опциональный вывод статистики. Изменён хоткей. Вложение в первом сообщении обновлено.

Shmuel
Posts: 4946
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

Duplicate Fighter (Анти-дубликатор)

Postby Shmuel » Tue 03 Nov, 2015 13:14

И ещё раз. Статистика расширена.

Arama
Posts: 60
Joined: Mon 01 Jun, 2015 12:14
Has thanked: 1 time
Been thanked: 1 time

Duplicate Fighter (Анти-дубликатор)

Postby Arama » Tue 03 Nov, 2015 15:41

А хоткей зачем менять? Приходится руками обратно возвращать...

Shmuel
Posts: 4946
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

Duplicate Fighter (Анти-дубликатор)

Postby Shmuel » Tue 03 Nov, 2015 15:51

Arama wrote:Source of the post А хоткей зачем менять?

Потому что CtrlP в редакторе перекрывает функциональность Фара: http://forum.ru-board.com/topic.cgi?for ... rt=7860#11


Return to “Полезные макросы и скрипты”

Who is online

Users browsing this forum: No registered users and 1 guest