Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 4)

Модерирует : gyra, Maz

Maz (23-11-2017 18:57): FAR Manager (часть 5)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

   

AlViS



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
Предыдущие топики:  1 2 3
 
Где взять последнюю версию?
На странице загрузки скачайте MSI-инсталлятор стабильной сборки нужной вам разрядности (32 или 64 бита) или дистрибутив в виде 7z-архива и установите/распакуйте в любую папку (FAR портабелен и может работать без установки).
Там же на свой страх и риск можно взять наиболее свежую "ночную" сборку (в ночных сборках устраняются выявленные недоработки, добавляются новые функции, но могут содержаться и серьёзные ошибки).
 
Общие сведения о совместимости FAR и плагинов
 
Можно воспользоваться одной из пользовательских сборок FAR Manager
Вопросы, касающиеся сборок, следует задавать непосредственно их авторам, а не на официальном форуме.
 
Где взять дополнительные плагины, скрипты и макросы?
Плагринг. В настоящее время большинство авторов (возможно, уже и все) выкладывают плагины здесь. Кроме плагинов здесь появляется всё относящиеся к FAR: дополнения, консольные шрифты, скрипты и пр.
Анонсы плагинов на официальном форуме. Даже если автор не выкладывает по каким-либо причинам плагин на плагринге, он может дать анонс в этой теме.
Полезные скрипты и макросы.
 
Инструкции по сборке ФАРа из исходников
Набор для самостоятельной сборки ФАРа
Как собрать FAR самостоятельно (старая инструкция)  
 
Ссылки на устаревшие версии
Выдержка из Far Manager Site and Forum ‹ FAQ :
Отличия FAR 3 от FAR 2
Отличия FAR 2 от FAR 1.7
 
Примечания
 
* 13 декабря 2008 г. произошло переименование веток: ANSI-ветка 1.71 превратилась в 1.75, а Unicode-ветка получила номер версии 2.0 (вместо 1.80). Т.е. версии 1.хх это ANSI ("старый" FAR), а версии 2.хх – Unicode ("новый" FAR). Эти ветки сильно различаются по способу взаимодействия с плагинами и системой!
* При обновлении ANSI-ветки 1.хх более старые версии плагинов могут работать в более новом FAR, но более новые плагины в большинстве случаев требуют обновления FAR (см. документацию).
* Unicode-плагины в ANSI-версии FAR не работают – у них иной способ взаимодействия (API) с Far.exe, поэтому даже не пытайтесь их использовать в FAR версии ниже 1.80.
* При обновлении Unicode-версии FAR 1.80/2.0/3.0 обращайте внимание на номер сборки: следует обязательно обновить все плагины для сборок 677/680/684, иначе они не будут работать. ANSI-плагины (кроме тех, которые работают в редакторе) можно применять в Unicode-версии FAR, в меню плагинов (вызываемом по F11) они будут помечены значком [A] справа от их имени. Unicode-плагины в FAR 1.80/2.x/3.х никаким значком после имени не помечаются.
* Unicode-версия FAR 1.80/2.x/3.х требует как минимум Windows 2000, т.е. она работает только в Windows 2000/XP/2003/Vista/2008/7/8/10.
* Плагины от FAR 2 несовместимы с FAR 3 и не запустятся.
* В FAR 3 выборочно могут работать плагины от FAR 1, однако не стоит брать от FAR 1 плагины для редактора или работающие с дисками: первые портят текст в Юникоде, вторые – файловую систему.
* В любом случае разрядность плагинов должна совпадать с разрядностью FAR, иначе плагин не будет загружен.

 
Принципиальные различия между hard link, symlink и junction
Как устранить взаимное влияние запущенных копий FAR в памяти
Как запустить Lua/MoonScript из FAR
Как правильно добавить в программу нужную DLL (или иную зависимость), чтобы при обновлении ОС или иных программ она не перестала работать
 
Общие правила обращения за помощью
  1. Решаете задачу самостоятельно, при необходимости ищете ответы в теме и других источниках. Предварительное изучение документации обязательно!
  2. Если ваших знаний не хватает, то задаёте вопрос в форуме и строго следуете инструкциям тех людей, которые вам помогают.
  3. Если решить задачу, следуя пунктам 1 и 2, не удалось, то задаёте вопрос разработчикам.

Невыполнение этих правил ведёт к тому, что никто не станет помогать решать вашу задачу.

Всего записей: 2402 | Зарегистр. 03-01-2002 | Отправлено: 11:10 07-11-2015 | Исправлено: Victor_VG, 04:33 26-09-2017
YuS_two



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...
 
Добавлено:
Angel_Ka

Цитата:
в моём случае это важно, и поэтому такая сортировка сделано мною преднамеренно.


Цитата:
Если я убираю .*? из группы с ГОСТ Р, то она остаётся неотсортированной, а мне нужно её обособить.

Тогда не совсем понятно, почему группы сделаны только по цифрам, все четыре группы равны "(\d+?)"

Цитата:
Да и вреда .*? вроде бы не приносит.

про вред - чуть выше. Вообще, регэкспы составлять лучше в необходимом минимуме, без излишеств, даже если излишества не приносят вред... хоть регэкспы и мощный инструмент, но он ещё и ресурсоемкий.

Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 15:30 03-04-2016 | Исправлено: YuS_two, 15:34 03-04-2016
Angel_Ka



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_two

Цитата:
Как сказал выше, Alexyz21:
 
Цитата:
оканчивать группу на .*?| нет смысла - это матчит пусто, .*? в этом случае лучше убрать.
 
т.е. записывать регулярку на полное совпадение строки с таким окончанием широкого действия, без особой надобности, бессмысленно. Это только будет увеличивать время на проверку и на большом объеме текста могут возникать тормоза... регэкспы матчатся не только вперед по тексту, но и с возвратом, для проверки всех вариантов, ну, за исключением некоторых случаев, типа атомарных групп, сверхжадных квантификаторов и т.п....  

Да, это я понял. СПАСИБО БОЛЬШОЕ Вам за более подробное разъяснение!
Поэтому, вняв совету, убираю из регекса лишние .*?, но при этом оставляю их в нужном месте для того, чтобы обеспечить отделение файлов с просто ГОСТ, без Р, от файлов с ГОСТ Р:  
/^(\d+?).*?[\.,;] |(\d+?)к2|(\d+?).*? ГОСТ (?!Р)|(\d+?).*? ГОСТ Р.*?$/i{!:$1$3$2$4}
 
Добавлено:

Цитата:
не совсем понятно, почему группы сделаны только по цифрам, все четыре группы равны "(\d+?)"

Не равны, разумеется, а начинаются с чисел. Поскольку сортируемая база файлов, которых может быть несколько десятков тысяч и более даже, пронумерована пятизначными числами. Причём могут быть сбивки нумерации типа повторов и пропусков номеров. А также к отдельным номерам прилепляются пометки, например: 72007к2 ...

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 16:30 03-04-2016
YuS_two



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Angel_Ka

Цитата:
/^(\d+?).*?[\.,;] .*?$|(\d+?)к2.*?|(\d+?).*? ГОСТ (?!Р).*?|(\d+?).*? ГОСТ Р.*?$/i{!:$1$3$2$4}

Тогда с уточнениями, попробуйте так:

Код:
/^(?:(\d+?.*?[\.,;] )|(\d+?к2)|(\d+?.*? ГОСТ (?!Р))|(\d+?.*? ГОСТ Р))/i{!:$1$3$2$4}

Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 16:40 03-04-2016 | Исправлено: YuS_two, 16:41 03-04-2016
Angel_Ka



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Вообще, регэкспы составлять лучше в необходимом минимуме, без излишеств

В данном случае для меня .*? и есть тот самый необходимый минимум. Поскольку другого варианта отделить просто ГОСТ от ГОСТ Р я пока не знаю.

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 16:41 03-04-2016
YuS_two



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Angel_Ka

Цитата:
В данном случае для меня .*? и есть тот самый необходимый минимум.

не-не-не, тут Вы где-то запутались, поскольку шаблон ".*?" буквально означает: ноль или более любых символов в минимальном количестве (по-хорошему, это должен быть всего один любой символ, если в общем шаблоне за ним ничего не следует), в том числе и пусто - не знаю как именно FAR обрабатывает эту ситуацию... но в любом случае, этот шаблон не зависит и не влияет на наличие/отсутствие "Р".
 
Добавлено:
Angel_Ka

Цитата:
\d+?

И ещё, почему используется именно нежадный квантификатор во всех случаях? Тут бы наоборот, сделать его сверхжадным для ускорения обработки...

Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 16:49 03-04-2016
Angel_Ka



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_two

Цитата:
Тогда с уточнениями, попробуйте так:
 
Код:
/^(?:(\d+?.*?[\.,;] )|(\d+?к2)|(\d+?.*? ГОСТ (?!Р))|(\d+?.*? ГОСТ Р))/i{!:$1$3$2$4}

Да, так кажется подходит. БОЛЬШУЩЕЕ СПАСИБО за помощь!
 
Но поясните, пожалуйста, за счёт чего Вы этого добились? И отдельно ещё что означает метка ?: в первой группе?

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 16:53 03-04-2016 | Исправлено: Angel_Ka, 16:54 03-04-2016
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Angel_Ka
Понравились регэкспы?
 
Новая плюшка подробно описана в п.4

Всего записей: 3486 | Зарегистр. 16-06-2007 | Отправлено: 16:55 03-04-2016
Angel_Ka



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21

Цитата:
Новая плюшка подробно описана в п.4

Вы пишите макросы намного быстрее, чем я успеваю их осваивать! Сейчас с удовольствием посмотрю.  
 

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 17:05 03-04-2016
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Вы пишите макросы намного быстрее, чем я успеваю их осваивать!

Не, это я ошибки успеваю быстрее делать, чем вы их осваивать приходится править
 
Имхо имеющийся инструментарий позволяет производить самые изощрённые сортировки, не хватает только истории для Regex и Func() и, наверное, help'a ввиду разросшейся функциональности.

Всего записей: 3486 | Зарегистр. 16-06-2007 | Отправлено: 17:15 03-04-2016 | Исправлено: Alexyz21, 17:21 03-04-2016
Angel_Ka



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
С прежними регексами, в т.ч. с подскзанным YuS_two, работает отлично!  
БОЛЬШОЕ СПАСИБО!  
 
А вот новые варианты опробую позднее.

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 17:21 03-04-2016
YuS_two



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Angel_Ka

Цитата:
поясните, пожалуйста, за счёт чего Вы этого добились?

Боюсь, нас скоро отсюда погонят за оффтопик, с нашими регэкспами... но раз уж есть привязка к FAR-у, то:
За счет групп, под которые выделяется отдельная память и они соответственно нумеруются:

Код:
/^(?:(ш1)|(ш2)|(ш3)|(ш4))/i{!:$1$3$2$4}

т.е. группа - это то, что находится внутри скобок и в данном случае, они работают как альтернатива друг другу (целиком то, что захватывает каждая группа)... а сортировка - это уже чисто работа макроса.
 

Цитата:
И отдельно ещё что означает метка ?: в первой группе?

А это группа, под которую память не выделяется и она не нумеруется. В данном случае она нужна для того, чтобы начало строки учитывалось для каждой из нумерованных групп.

Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 18:21 03-04-2016
Angel_Ka



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_two
 
БОЛЬШОЕ СПАСИБО Вам за доходчивые пояснения!
 
И я так себе думаю, что Фар совсем без регулярных выражений был бы похож на инвалида. А в хелпе Фара про них бегло-телеграфным стилем, без особых объяснений, в расчёте на самостоятельное практическое освоение. Про группировки, например, написано лишь то, что они служат "либо для использования ссылок, либо попавшего в скобку фрагмента текста при замене". А про форму (?:pattern) и вовсе загадочная фраза о том, что это "обычная группировка, но только эта скобка не получает номера".
И если бы не Ваши примеры и подробные компетентные пояснения, то на одном хелпе не очень то скоро бы я продвинулся в понимании регэкспов, осознании их возможностей и усвоении применения их в Фаре.
 
БЛАГОДАРЮ Вас за добрую отзывчивость!  

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 19:58 03-04-2016
YuS_two



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Angel_Ka

Цитата:
на одном хелпе не очень то скоро бы я продвинулся в понимании регэкспов, осознании их возможностей и усвоении применения их в Фаре.

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

Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 20:16 03-04-2016
Angel_Ka



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_two

Цитата:
Цитата:
\d+?
 
И ещё, почему используется именно нежадный квантификатор во всех случаях? Тут бы наоборот, сделать его сверхжадным для ускорения обработки...

Вы имеете ввиду лучше так:
/^(?:(\d{5}.*?[\.,;] )|(\d{5}к2)|(\d{5}.*? ГОСТ (?!Р))|(\d{5}.*? ГОСТ Р))/i{!:$1$3$2$4}
?

Цитата:
Вижу, книгу, которую советовал выше, Вы пока не изучали

Почему же? Очень рад Вашему совету, начал штудировать. Но там же 598 страниц. Скоро детективы читаются, а тут думать надо, возвращаться к прочитанному, снова думать, практиковаться и снова ...

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 20:44 03-04-2016 | Исправлено: Angel_Ka, 20:52 03-04-2016
YuS_two



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...
Angel_Ka

Цитата:
Вы имеете ввиду лучше так:  
/^(?:(\d{5}.*?[\.,;] )|(\d{5}к2)|(\d{5}.*? ГОСТ (?!Р))|(\d{5}.*? ГОСТ Р))/i{!:$1$3$2$4}  
?  

Нет, так будет хуже, потому, что будут захватываться строго 5 цифр, не больше и не меньше... а если их будет больше или меньше в начале строки, то и совпадения не будет найдено.
Но со сверхжадностью, это я поторопился, в FAR-e, судя по хелпу, её просто нет, присутствуют только жадные и ленивые квантификаторы. Тогда можно и не забивать голову, т.к. выигрыша особого не будет, в данном случае... только если, визуально шаблон будет выглядеть чуть проще:

Код:
/^(?:(\d+.*?[\.,;] )|(\d+к2)|(\d+.*? ГОСТ (?!Р))|(\d+.*? ГОСТ Р))/i{!:$1$3$2$4}

 

Цитата:
Но там же 598 страниц.

Это да. Но вот и представьте, как упаковать такое количество информации в краткий хелп... задача не из простых. Лучше вписать туда рекомендации по изучению регулярных выражений, типа с чего начать, какую литературу поискать и т.п.  [/more]

Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 21:03 03-04-2016 | Исправлено: YuS_two, 21:05 03-04-2016
Angel_Ka



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_two

Цитата:
Код:
/^(?:(\d+.*?[\.,;] )|(\d+к2)|(\d+.*? ГОСТ (?!Р))|(\d+.*? ГОСТ Р))/i{!:$1$3$2$4}

Да, шаблон работает. БОЛЬШОЕ СПАСИБО за совет и пояснение к нему! Очень рад, ведь общеизвестно, что с применением наставлений освоение материала продвигается существенно быстрее.  
 
 
Добавлено:
И всё таки возник вопрос: если быть уверенным, что в начале имён файлов всегда строго 5 цифр, то ведь было бы предпочтительнее применять "{5}", а не "+" ?

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 21:49 03-04-2016 | Исправлено: Angel_Ka, 21:50 03-04-2016
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Angel_Ka
Было бы любопытно увидеть рапорты сравнения быстродействия различных вариантов регэспов: жадных, нежадных, фиксированных и тд. при одинаковых результатах сортировки. Формат - регулярное выражение и рапорт на тестовой базе.

Всего записей: 3486 | Зарегистр. 16-06-2007 | Отправлено: 22:52 03-04-2016 | Исправлено: Alexyz21, 22:58 03-04-2016
Angel_Ka



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
Постараюсь завтра-послезавтра это организовать. На домашнем же микро-тесте мне кажется это вообще не имеет смысла, поскольку он дюже утрированный.  
 
Добавлено:
YuS_two
 
Вы навели меня на очень полезную мысль проверять наличие возможных ошибок — непятизначных чисел в начале имён файлов. И у меня получился следующий вполне работающий регэксп:
/^(?:(\d{5}.*?[\.,;] )|(\d{5}к2)|(\d{5}\D+ГОСТ (?!Р))|(\d{5}\D+ГОСТ Р)|(\d{1,4}\D)|(\d{5}\d+))/i{!:$6$5$1$3$2$4}

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 23:31 03-04-2016 | Исправлено: Angel_Ka, 23:35 03-04-2016
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Это ни к чему не обязывающее пожелание.
 
Shmuel
Странно в поиске на форуме не нашёл, а вроде бы уже спрашивал у вас, да за склерозом забыл ответ. - Почему нет метода gmatch?

Всего записей: 3486 | Зарегистр. 16-06-2007 | Отправлено: 23:42 03-04-2016
Angel_Ka



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_two
 
Регэксп /^(?:(\d{5}.*?[\.,;] )|(\d{5}к2)|(\d{5}\D+ГОСТ (?!Р))|(\d{5}\D+ГОСТ Р)|(\d{1,4}\D)|(\d{5}\d+))/i{!:$6$5$1$3$2$4}, применённый в макросе Panel.CustomSortByName.lua, сортирует файлы в следующем порядке:
 
1) файлы, в начале имён которых больше 5 цифр;
2) файлы, в начале имён которых меньше 5 цифр;
3) файлы, в именах которых есть точки, запятые и точки с запятыми;
4) файлы, в именах которых есть слово ГОСТ без последующего Р;
5) файлы, в начале имён которых к начальным пятизначным числам вплотную примыкает метка "к2";
6) файлы, в именах которых есть метка ГОСТ Р.
 
Добавлено:
Alexyz21

Цитата:
Это ни к чему не обязывающее пожелание.

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

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 23:45 03-04-2016 | Исправлено: Angel_Ka, 23:56 03-04-2016
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 4)
Maz (23-11-2017 18:57): FAR Manager (часть 5)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru