Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов
-
- Posts: 6
- Joined: Sat 05 Mar, 2016 13:46
Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов
Хотелось бы, чтобы была возможность задавать маски так:
*.[7,]z["ip",]
т.е. подходят *.z, *.7z, *.zip, *.7zip
В текущей реализации нельзя задавать пустой символ и последовательности символов вроде "ip", вернее можно, но только через regexp, что не так наглядно + не понятно, насколько regexp быстры при большом количестве масок.
Ещё, как я понял, Far сначала раскрашивает все файлы в папке, и лишь потом выводит на экран те файлы, которые влезают, что медленно, если много файлов (напр., для папки system32). Правильней раскрасить лишь то, что должно быть отображено и сразу вывести на экран, затем раскрасить то, что может быть отображено через кнопки-стрелки и End, PgUp, PgDown, а остальное либо не трогать (и раскрашивать лишь когда потребуется выводить на экран), либо докрасить в фоне.
*.[7,]z["ip",]
т.е. подходят *.z, *.7z, *.zip, *.7zip
В текущей реализации нельзя задавать пустой символ и последовательности символов вроде "ip", вернее можно, но только через regexp, что не так наглядно + не понятно, насколько regexp быстры при большом количестве масок.
Ещё, как я понял, Far сначала раскрашивает все файлы в папке, и лишь потом выводит на экран те файлы, которые влезают, что медленно, если много файлов (напр., для папки system32). Правильней раскрасить лишь то, что должно быть отображено и сразу вывести на экран, затем раскрасить то, что может быть отображено через кнопки-стрелки и End, PgUp, PgDown, а остальное либо не трогать (и раскрашивать лишь когда потребуется выводить на экран), либо докрасить в фоне.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов
Вроде маски в Фаре поддерживают регулярные выражения. Посмотрите хелп. Разве маски для раскраски отличаются?
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов
Ну так померяйте и сравните.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов
Ах, так это регеспы не нравятся человеку? Хм, ясно.
- HaRT
- Moderator
- Posts: 10866
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов
На каком основании Вы сделали такой вывод?
Фар есть инструмент, а не нянька. © 2009 DrKnS
Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов
/.+\.7?z(ip)?/
Хрен редьки не слаще. При этом первый надо ещё специфицировать, в отличии от регулярных выражений.- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов
.+ в начале, наверное, лишнее. А в конце надо добавить $.
-
- Posts: 6
- Joined: Sat 05 Mar, 2016 13:46
Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов
Потому что если задано много масок, то скорость вывода на экран списка файлов панели при открытии каталога зависит от количества элементов в этом каталоге. Сделайте больше 100 масок и зайдите в system32 - перед выводом содержимого панели будет долго тупить. Зачем определять цвета для файлов, которые всё равно не будут выведены на экран?
Как раз таки первый вариант лучше читается. Что значит специфицировать? Задача из первого поста трудно реализуема?
Я не против regexp, но если можно писать *.[7bg]zip, то почему нельзя *.[7bg,]zip ?
-
- Posts: 6
- Joined: Sat 05 Mar, 2016 13:46
Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов
Кстати, в конце регулярных выражений нужно ещё и i добавлять, чтобы не учитывался регистр, а в стандартных масках регистр и так не учитывается.
- HaRT
- Moderator
- Posts: 10866
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов
Отчего же нельзя?! Можно — тогда под эту маску подойдёт
[i][b]foo.,zip[/b][/i]
Фар есть инструмент, а не нянька. © 2009 DrKnS
- HaRT
- Moderator
- Posts: 10866
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Если чётко опишете методику замеров и приведёте два заметно различающихся результата для различающегося количества файлов, то шансы на исправление повысятся.
Фар есть инструмент, а не нянька. © 2009 DrKnS
-
- Posts: 6
- Joined: Sat 05 Mar, 2016 13:46
Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов
Это уже две маски, а в сложных вариантах их будет ещё больше. Если строить выражение вокруг ключевой фразы, такой как zip, то должна быть и возможность задания пустого символа.
А что тут замерять? Достаточно создать и зайти в %SystemRoot%\System32 , а также в любую папку, где мало файлов.
Или, вместо System32, можно и позаходить в папки 100 и 1000. Разница будет очевидна, особенно на слабых процессорах.
Last edited by softrunner on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: [spoiler]
Reason: [spoiler]
- HaRT
- Moderator
- Posts: 10866
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов
Вы не поняли. Я привёл одно имя файла, подходящее под предложенную Вами маску, а запятая — часть его расширения.
Я не зря сказал про чёткое — детальное и по шагам — описание методики замера и конкретные численные результаты (в миллисекундах или секундах). Без такого довода вряд ли кто-то заинтересуется. Вроде ж это Вы хотите, чтобы тут что-то улучшили?
Фар есть инструмент, а не нянька. © 2009 DrKnS
-
- Posts: 6
- Joined: Sat 05 Mar, 2016 13:46
Больше возможностей в задании масок, более быстрый алгоритм раскраски файлов
Чтобы foo.,zip попало под ту маску, запятую нужно брать в кавычки *.[7bg","]zip , т.е. запятая без кавычек здесь не проблема.
Вот реальные цифры:
На входе:
1) Процесоор AMD Athlon 64 X2 4800+
2) Windows 8.1 x32
3) Far 3.0 x32 4601
4) Включённая опция "Раскраска файлов" из меню "Параметры\Настройки панели"
5) Одна группа из 1000 простых масок вида *.1,*.2,*.3,*.4, ... ,*.1000 и соответствующий ей пункт в списке "Раскраска файлов и группы сортировки"
6) Четыре папки:
- папка со 100-ми файлами вида 1, 2, 3, 4, ... , 100
- папка с 1000-ю файлов вида 1, 2, 3, 4, ... , 1000
- папка с 5000-ми файлов вида 1, 2, 3, 4, ... , 5000
- папка с 10000-ми файлов вида 1, 2, 3, 4, ... , 10000
На выходе:
1) При заходе в папку со 100-ми файлами время отображения содержимого панели: без ощутимой задержки
2) При заходе в папку с 1000-ю файлов время отображения содержимого панели: с задержкой ~1 секунда
3) При заходе в папку с 5000-ю файлов время отображения содержимого панели: с задержкой ~5,5 секунд
4) При заходе в папку с 10000-ю файлов время отображения содержимого панели: с задержкой ~11,5 секунд
Если отключить опцию "Раскраска файлов", то для всех папок время отображения содержимого панели: без ощутимой задержки.
Если я захожу в папку с 1000-ю и более файлов, собираюсь ли я выводить их все на панель? Скорее всего нет. Но при этом программа зачем-то определяет цвета отображения для всех файлов папки, тратя на это вычислительные ресурсы и время.