Page 4 of 5

Re: Маски файлов

Posted: Sat 03 Mar, 2012 19:26
by NightRoman

Latest post of the previous page:

Тех. вопросы:

1. Можно ли при задании групп использовать группы? (могу и попробовать, но ответ и другим будет полезен)
2. В меню групп что делает [Ctrl-R]? (комбинация указана среди подсказок внизу)

Re: Маски файлов

Posted: Sat 03 Mar, 2012 20:07
by DrKnS
NightRoman wrote:1. Можно ли при задании групп использовать группы? (могу и попробовать, но ответ и другим будет полезен)
Нельзя. Могу и добавить (уже просили), но что если ты там рекурсию организуешь?
2. В меню групп что делает [Ctrl-R]? (комбинация указана среди подсказок внизу)
Что быстрее - нажать и посмотреть или на форум написать?

Re: Маски файлов

Posted: Sat 03 Mar, 2012 20:15
by NightRoman
но что если ты там рекурсию организуешь?
С этим можно справиться разными способами. Могут быть причины, почему это не хочется делать, это да. Но что возможна рекурсия - это не причина, как таковая. (для примера - хард линками тоже можно рекурсию организовать, но Фар ведь не запрещает их создавать)
Что быстрее - нажать и посмотреть или на форум написать?
Странный вопрос. А если это Remove или еще чего, что я не хочу делать? F1 там не работает.

Re: Маски файлов

Posted: Sat 03 Mar, 2012 23:15
by zg
NightRoman wrote:[(для примера - хард линками тоже можно рекурсию организовать, но Фар ведь не запрещает их создавать)
как?

Re: Маски файлов

Posted: Sun 04 Mar, 2012 06:10
by NightRoman
Принципиально или нет, я juntion имел в виду. Делается просто. Имеем любую папку (C:\TEMP\1). Идем в C:\TEMP\1 на левой панели, а с правой стоим на C:\TEMP\1 и создаем линк C:\TEMP\1\1 (AltF6). Теперь можно бесконечно входить внутрь C:\TEMP\1\1\1\1\1\...

Re: Маски файлов

Posted: Sun 04 Mar, 2012 08:39
by Tim Sobolev
Была идея о назначении каждой простой группе уникального идентификатора, а сложной группе множества внешних идентификаторов, составляющегося из идентификаторов её простых групп. При включении сложной группы в другую группу наследуется это множество и собственный идентификатор включаемой группы. При создании/изменении сложной группы (без превращения в простую)/превращении простой группы в сложную происходит проверка, соответствует ли один из образующих внешних идентификаторов идентификатору самой группы. Да -- рекурсия. Также после этого происходит проверка всех сложных групп, включающих собственный идентификатор этой группы.

Re: Маски файлов

Posted: Sun 04 Mar, 2012 09:56
by DrKnS
NightRoman wrote:можно бесконечно входить внутрь C:\TEMP\1\1\1\1\1\...
По папкам ты ходишь сам, медленно, и рано или поздно либо осознаешь бессмысленность этих походов, либо упрешься в ограничение в 32768 символов.

Здесь же фар будет молча и с дикой скоростью наращивать строку, ограниченную только размером адресного пространства, поэтому проблема актуальна.

Re: Маски файлов

Posted: Sun 04 Mar, 2012 10:05
by 2useven10
можно просто ограничить глубину вложенности (скажем до 5 уровней), если больше, считать маску невалидной.
upd: - точнее возвращать ошибку при применении маски, в момент создания она вполне могла быть нерекурсивной...

Re: Маски файлов

Posted: Sun 04 Mar, 2012 10:10
by NightRoman
DrKnS wrote:По папкам ты ходишь сам, медленно, и рано или поздно либо осознаешь бессмысленность этих походов, либо упрешься в ограничение в 32768 символов.
А если поиск? А если какая утилита не ожидает такой подлянки для рекурсивного прохода по папкам? Нет, это все равно капкан.

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

Re: Маски файлов

Posted: Sun 04 Mar, 2012 10:12
by Denis
Вроде же как несложно отследить рекурсию - если эта группа уже один раз была - выдавать ошибку.

Re: Маски файлов

Posted: Sun 04 Mar, 2012 12:47
by zg
NightRoman wrote:Принципиально или нет, я juntion имел в виду. Делается просто. Имеем любую папку (C:\TEMP\1). Идем в C:\TEMP\1 на левой панели, а с правой стоим на C:\TEMP\1 и создаем линк C:\TEMP\1\1 (AltF6). Теперь можно бесконечно входить внутрь C:\TEMP\1\1\1\1\1\...
это не хард-линки.

Re: Маски файлов

Posted: Mon 05 Mar, 2012 12:02
by HaRT
DrKnS wrote:Здесь же фар будет молча и с дикой скоростью наращивать строку
Известны эффективные алгоритмы для проверки ацикличности направленного графа. Разве этого недостаточно?

Re: Маски файлов

Posted: Mon 05 Mar, 2012 12:07
by John Doe

Code: Select all

drkns 04.03.2012 14:08:07 +0200 - build 2517

1. Продолжение 2488 - группы могут содержать другие группы.

Re: Маски файлов

Posted: Tue 02 Jul, 2013 14:06
by Skirda
В общем ту такое дело, пытаюсь поправить хельп в части "@MaskGroupsSettings"
Мне сначала непонятна была цель F7 в списке групп масок, ведь есть Ctr-Alt-F в списке. Но потом вспомнил про "группы в группе".
Вроде всё ок, но фигня вот какая:
1. Ищется только точное совпадение. Не айс: "rar" вместо "*.rar" вроде как более юзерфриндли.
2. Как найти "*.h[ay]p"?

Далее (собственно подтверждения ради)
Создал группу <docums>=/\.doc[x]?$/i
Ctrl-I в панелях, добавил и отметил <docums>, на панели *.doc и *.docx. Ok.
Иду в группы правлю <docums>=/\.doc$/i
Ожидаю что фильтр применился. Неа, на панели тот же набор *.doc и *.docx
...перезапуск Far помогает.