Маски файлов в API

Разработка Far.
User avatar
NightRoman
Posts: 6034
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 20 times
Been thanked: 49 times
Contact:

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

Post by NightRoman »

Latest post of the previous page:

Shmuel wrote:Для меня невалидность пустой маски - удобна. В диалоге поиска, если пользователь нажимает Enter при пустой маске, это как правило означает, что он забыл ввести маску.
Какого диалога поиска? В Фаровском это будет трактоваться как *
User avatar
John Doe
Бюрократ
Posts: 13064
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 42 times
Been thanked: 319 times

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

Post by John Doe »

NightRoman wrote:Какого диалога поиска? В Фаровском это будет трактоваться как *
Это уже ИИ.
От одного подобного ИИ избавились уже, осталось избавиться и от этого.
Shmuel
Posts: 6217
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 348 times

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

Post by Shmuel »

Как уже сказано было выше - аппликация сама решает, что с этим делать.
Да, поддерживаю избавление от этого.
User avatar
NightRoman
Posts: 6034
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 20 times
Been thanked: 49 times
Contact:

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

Post by NightRoman »

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

1. Можно ли при задании групп использовать группы? (могу и попробовать, но ответ и другим будет полезен)
2. В меню групп что делает [Ctrl-R]? (комбинация указана среди подсказок внизу)
User avatar
DrKnS
Posts: 5804
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 10 times
Been thanked: 343 times

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

Post by DrKnS »

NightRoman wrote:1. Можно ли при задании групп использовать группы? (могу и попробовать, но ответ и другим будет полезен)
Нельзя. Могу и добавить (уже просили), но что если ты там рекурсию организуешь?
2. В меню групп что делает [Ctrl-R]? (комбинация указана среди подсказок внизу)
Что быстрее - нажать и посмотреть или на форум написать?
User avatar
NightRoman
Posts: 6034
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 20 times
Been thanked: 49 times
Contact:

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

Post by NightRoman »

но что если ты там рекурсию организуешь?
С этим можно справиться разными способами. Могут быть причины, почему это не хочется делать, это да. Но что возможна рекурсия - это не причина, как таковая. (для примера - хард линками тоже можно рекурсию организовать, но Фар ведь не запрещает их создавать)
Что быстрее - нажать и посмотреть или на форум написать?
Странный вопрос. А если это Remove или еще чего, что я не хочу делать? F1 там не работает.
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 158 times
Contact:

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

Post by zg »

NightRoman wrote:[(для примера - хард линками тоже можно рекурсию организовать, но Фар ведь не запрещает их создавать)
как?
User avatar
NightRoman
Posts: 6034
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 20 times
Been thanked: 49 times
Contact:

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

Post by NightRoman »

Принципиально или нет, я juntion имел в виду. Делается просто. Имеем любую папку (C:\TEMP\1). Идем в C:\TEMP\1 на левой панели, а с правой стоим на C:\TEMP\1 и создаем линк C:\TEMP\1\1 (AltF6). Теперь можно бесконечно входить внутрь C:\TEMP\1\1\1\1\1\...
User avatar
Tim Sobolev
Posts: 715
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time
Been thanked: 2 times

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

Post by Tim Sobolev »

Была идея о назначении каждой простой группе уникального идентификатора, а сложной группе множества внешних идентификаторов, составляющегося из идентификаторов её простых групп. При включении сложной группы в другую группу наследуется это множество и собственный идентификатор включаемой группы. При создании/изменении сложной группы (без превращения в простую)/превращении простой группы в сложную происходит проверка, соответствует ли один из образующих внешних идентификаторов идентификатору самой группы. Да -- рекурсия. Также после этого происходит проверка всех сложных групп, включающих собственный идентификатор этой группы.
User avatar
DrKnS
Posts: 5804
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 10 times
Been thanked: 343 times

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

Post by DrKnS »

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

Здесь же фар будет молча и с дикой скоростью наращивать строку, ограниченную только размером адресного пространства, поэтому проблема актуальна.
2useven10
Posts: 4224
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 6 times
Been thanked: 209 times

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

Post by 2useven10 »

можно просто ограничить глубину вложенности (скажем до 5 уровней), если больше, считать маску невалидной.
upd: - точнее возвращать ошибку при применении маски, в момент создания она вполне могла быть нерекурсивной...
User avatar
NightRoman
Posts: 6034
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 20 times
Been thanked: 49 times
Contact:

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

Post by NightRoman »

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

Да при чем тут это? Рекурсию можно отследить, хоть список составлять и проверять, чтобы туда дважды одна группа не попадала. При встрече группы либо давать полный отлуп, либо ее игноривать. Первое - лучше, пусть юзер устранит у себя эту рекурсию.
Denis
Posts: 1433
Joined: Tue 05 Apr, 2005 18:12
Has thanked: 9 times
Been thanked: 4 times

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

Post by Denis »

Вроде же как несложно отследить рекурсию - если эта группа уже один раз была - выдавать ошибку.
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 158 times
Contact:

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

Post 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\...
это не хард-линки.
User avatar
HaRT
Moderator
Posts: 9688
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 124 times
Been thanked: 249 times

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

Post by HaRT »

DrKnS wrote:Здесь же фар будет молча и с дикой скоростью наращивать строку
Известны эффективные алгоритмы для проверки ацикличности направленного графа. Разве этого недостаточно?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13064
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 42 times
Been thanked: 319 times

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

Post by John Doe »

Code: Select all

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

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

Return to “Development”