Ru-Board.club
← Вернуться в раздел «Программы»

» Far Manager

Автор: Angel_Ka
Дата сообщения: 09.05.2016 21:47
shmuz2

Нативная временная панель подходит меньше — она формируется существенно дольше и воспринимает не все файлы. Про работу же с базой в 2,9 млн файлов я упомянул чтобы отметить, что такое в принципе возможно.

Ваша плагиновая временная панель, как показало её опробование, подходит гораздо больше. Ту же 2,9-милионную базу можно разделить на 3 – 4 части и работать над ними посредством её. Полагаю, что это будет существенно быстрее.

И я ОЧЕНЬ БЛАГОДАРЕН Вам за то, что Вы обнародовали плагин LuaFAR Temp. Panel!

Автор: shmuz2
Дата сообщения: 09.05.2016 22:01

Цитата:
Нативная временная панель [...] воспринимает не все файлы.

Боюсь, что вы ошибаетесь. Можно воспроизводимый пример?
Автор: Angel_Ka
Дата сообщения: 09.05.2016 23:12
shmuz2

Цитата:
Можно воспроизводимый пример?

В сборке для проведения быстрых тестов 76 файлов, в т.ч. один файл с именем
72020 МУК 4.3.2812-10 «Инструментальный контроль и оценка освещения рабочих мест» 2010.pdf
и два файла (один в базовой и один во вложенной папке) с именем
72024 МУ 3911-85 «Методические указания по проведению измерений и гигиенической оценки производственных вибраций 2001».pdf

Когда я формирую бранч на Временной панели плагина LF Search, то там оказываются все 76 файлов. А когда на нативной временной панели командой tmp:<dir /b /s /a-d, то на ней оказываются только 73 файла. Вышеуказанных файлов там нет. А команда dir подобные файлы показывает нормально.
Автор: shmuz2
Дата сообщения: 09.05.2016 23:17
Проблема не во временной панели, а в команде dir, которая подменяет юникодный символ на неюникодный эквивалент.
Автор: Angel_Ka
Дата сообщения: 09.05.2016 23:22

Код: >dir /S
Том в устройстве W имеет метку Elements
Серийный номер тома: DAA9-3745

Содержимое папки W:\2016_05_09

09.05.2016 23:25 <DIR> .
09.05.2016 23:25 <DIR> ..
09.05.2016 23:24 <DIR> 1
14.03.2016 21:14 0 72020 МУК 4.3.2812-10 «Инструментальный контроль и оценка освещения рабочих мест» 2010.pdf
14.03.2016 21:14 0 72024 МУ 3911-85 «Методические указания по проведению измерений и гигиенической оценки производственных вибраций 2001».pdf
2 файлов 0 байт

Содержимое папки W:\2016_05_09\1

09.05.2016 23:24 <DIR> .
09.05.2016 23:24 <DIR> ..
14.03.2016 21:14 0 72024 МУ 3911-85 «Методические указания по проведению измерений и гигиенической оценки производственных вибраций 2001».pdf
1 файлов 0 байт

Всего файлов:
3 файлов 0 байт
5 папок 66 473 697 280 байт свободно
Автор: shmuz2
Дата сообщения: 10.05.2016 08:13
Angel_Ka
То, что выводится на экран, ничего в данном случае не значит. Сделайте 2 опыта:
1. dir /b > filelist.txt
И посмотрите содержимое filelist.txt. Символы « и » оказались заменены соответственно на < и > (по крайней мере, у меня на XP так).
2. Поиск по AltF7 с последующим выводом на стандартную временную панель. Посмотрите содержимое панели. Файлы с символами « и » там должны присутствовать.

Добавлено:
Возможно, я неправильно выразился, что виновата команда dir, точнее было бы сказать, что виновато перенаправление "потока" (оператор <).
Автор: Angel_Ka
Дата сообщения: 10.05.2016 08:43
shmuz2

Получается, что Вы, к счастью, правы в отношении нативной Временной панели!

Я сделал ещё так: создал файл-список из Временной панели плагина LF Search и считал его в нативную Временную панель Фара. Означенные файлы присутствуют.

Большое Вам СПАСИБО за настойчивое поучение!

Добавлено:

Цитата:
точнее было бы сказать, что виновато перенаправление "потока" (оператор <)

За это существенное уточнение особо БЛАГОДАРЮ Вас!
Автор: shmuz2
Дата сообщения: 10.05.2016 08:59
Angel_Ka
Если перед выполнением команды tmp:<dir /b /s /a-d исполнить chcp 65001 то будет работать правильно.
Автор: Angel_Ka
Дата сообщения: 10.05.2016 16:01
shmuz2

Цитата:
перед выполнением команды tmp:<dir /b /s /a-d исполнить chcp 65001

Замечательнейший совет! Очень Вам за него благодарен! Сам бы я ни за что бы не додумался.

Вставил chcp 65001 в cmd-файл, запускающий Фар. В течение нескольких часов отрицательных моментов от этого пока не выявилось.
Автор: VictorVG4
Дата сообщения: 10.05.2016 17:06
Angel_Ka

Дак это стандартный приём - консоль у мелкомягких исторически работает с ANSI кодировками и я на это нарвался ещё на PC-BSD 7.0 когда приятель приволок флешку с кириллическими именами файлов. У UNIX исторически кириллица KOI-8R, а в ней эта штука не читалась и дополнительно ставить в терминале 1251-ю кодировку не было ни желания, ни возможности. Перенастроил терминал на UTF-8 и всё стало читаться без ошибок. Даже когда-то на Leve Jornal на эту тему небольшую инструкцию выложил, а после девицы коим этот хостинг принадлежит объявили что "мол всё, до чего ручки загребущие дотянутся наше, платите нам за красивые глазки!", ну я на них плюнул и ушёл. Сюань осталось там что или грохнули по дурости ибо им на энто ума хватит.
Автор: Angel_Ka
Дата сообщения: 10.05.2016 17:22
VictorVG4
Благодарю Вас за поддерживающее пояснение! А не подскажете, не могу ли я теперь на практике столкнуться с ситуацией, когда установленная в консоли Фара кодовая страница 65001 будет чему-то мешать, с чем-то конфликтовать?
Автор: VictorVG4
Дата сообщения: 10.05.2016 17:35
Angel_Ka

Думаю сильно вряд ли. Разве что MAC OS Cyrillic (CP-10007) встретится или IBM OS/360 DKOI-8. Ну, вторая таблица совсем экзотика - большинство этих мэйнфреймов выработали свой ресурс - там много электромеханики, и потому списаны ибо их ремонт выйдет дороже чем заменить весь комплекс на современный мэйнфрейм класса Cray XT6 или новее.
Автор: Angel_Ka
Дата сообщения: 10.05.2016 17:43
VictorVG4
Спасибо! Вы меня успокоили. А то, знаете, не имея достаточного опыта, порой доводится опасаться там, где это наверное и не нужно бы. И тогда это немножечко тяготит. Благодарю Вас за моральную поддержку!
Автор: wseventeen
Дата сообщения: 10.05.2016 18:22
VictorVG4
Цитата:
Думаю сильно вряд ли...

Сильно вряд ли хоть что-нибудь из ... может встретиться на виндовой машине Angel_Ka.


Добавлено:
Angel_Ka

Цитата:
установленная в консоли Фара кодовая страница 65001 будет чему-то мешать, с чем-то конфликтовать?

Вполне могут быть проблемы с неюникодными программами, которые рассчитывают на 866 кодовую страницу в консоли. Но никто мешает после получения списка в батнике восстановить кодовую страницу.
Автор: Angel_Ka
Дата сообщения: 10.05.2016 18:43
wseventeen

Цитата:
Но никто не мешает после получения списка в батнике восстановить кодовую страницу.

Благодарю Вас за разъяснение и совет! Уберу из батника выставление chcp 65001 (просто предпочитаю по возможности работать с настройками, выставленными по умолчанию) и буду приноравливаться применять её по ходу дела.
Автор: wseventeen
Дата сообщения: 10.05.2016 18:45
Angel_Ka
IMHO: Убирать из батника не надо, надо просто восстановить её в том же батнике.
Автор: VictorVG4
Дата сообщения: 10.05.2016 18:50
wseventeen

Да, про старые программы я и забыл т.к. они у меня разве что на архивных лентах сохранились.

Кстати, тут сегодня Павлов 7-Zip обновил:

Цитата:
16.00 2016-05-10
-------------------------
- 7-Zip now can extract multivolume ZIP archives (z01, z02, ... , zip).
- Some bugs were fixed.

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

7z-1600-1514_bin-src-diff.7z
7-Zip_16.00_for_arclite.7z
Автор: wseventeen
Дата сообщения: 10.05.2016 18:52
Можно не восстанавливать а исполнять в отдельном процессе.
Примерно так:

Код: start /min /wait cmd /c chcp 65001& dir /b /s /a-d >t.tmp
Автор: VictorVG4
Дата сообщения: 10.05.2016 19:01
wseventeen

Можно и в отдельной копии консоли чтобы устранить их взаимовлияние:

start /i cmd /c chcp 65001&dir /b/s/a-d >dirlist.txt

я в таких случаях так поступаю.

Добавлено:
Обновимся:

FarUE3 b4668 r14150 Tue May 10 19:53:51 +0300 2016

Цитата:
1. Far b4668 r14150
2. LuaFAR Search v3.26.0
3. 7-Zip v16.00
4. Рефакторинг. Обновление совместимо с SVN r14137 - SVN r14150

п1 - п3 реализованы для х86 и х64 редакций, п.4 только для х86.
Автор: Alexyz21
Дата сообщения: 10.05.2016 20:05
Насколька быстра внутренняя сортировка списка бранч панели?
Выполняю в скрипте:

Код: local pc=ffi.cast("struct PluginStartupInfo*",far.CPluginStartupInfo()).PanelControl
local pin=panel.GetPanelInfo(nil,1)
pc(PANEL_ACTIVE,"FCTL_SETNUMERICSORT",0,nil)
pc(PANEL_ACTIVE,"FCTL_SETCASESENSITIVESORT",ts[4] and 0 or 1,nil)
pc(PANEL_ACTIVE,"FCTL_SETSORTORDER",0,nil)
pc(PANEL_ACTIVE,"FCTL_BEGINSELECTION",0,nil)
for i=1,pin.ItemsNumber do
...
pc(PANEL_ACTIVE,"FCTL_SETSELECTION",i-1,pBL1)
...
end
pc(PANEL_ACTIVE,"FCTL_ENDSELECTION",0,nil)
pc(PANEL_ACTIVE,"FCTL_REDRAWPANEL",0,nil)
Автор: wseventeen
Дата сообщения: 10.05.2016 20:22

Цитата:
Кстати, тут сегодня Павлов 7-Zip обновил:

Уже посмотрел. Сегодня-завтра будет в arclite.
Автор: VictorVG4
Дата сообщения: 10.05.2016 20:28
wseventeen

Спасибо! Я не уверен что точно положил в архив все изменившиеся исходники - напарник случайно "удружил" коротнув питание фермы и первичная подборка улетела в тартар. Пришлось снова подбирать...
Автор: wseventeen
Дата сообщения: 10.05.2016 22:26

Цитата:
Я не уверен что точно положил в архив все изменившиеся исходники

Оповещения от 7z мне приходят и оригинальные файлы я вполне могу скачать самостоятельно.
Автор: Angel_Ka
Дата сообщения: 10.05.2016 23:02
wseventeen

Цитата:
надо просто восстановить её в том же батнике


Цитата:
Можно не восстанавливать а исполнять в отдельном процессе.
Примерно так:
start /min /wait cmd /c chcp 65001& dir /b /s /a-d >t.tmp

VictorVG4

Цитата:
Можно и в отдельной копии консоли чтобы устранить их взаимовлияние:
start /i cmd /c chcp 65001&dir /b/s/a-d >dirlist.txt


Очень благодарен вам за помощь! Намерен завтра же опробовать все варианты. И потом доложусь о результатах.

Автор: shmuz2
Дата сообщения: 10.05.2016 23:30
Alexyz21

Цитата:
Гарантировано ли полное завершение сортировки внутреннего списка ДО возврата из инициировавшего pc(PANEL_ACTIVE,"FCTL_SET...)?

Думаю, что гарантировано. А комментировать ваши результаты не возьмусь, т.к. с кодом не знаком.
Автор: Alexyz21
Дата сообщения: 11.05.2016 08:28
macroapi_manual.xx.chm
LoadCustomSortMode
Panel.LoadCustomSortMode (Mode, Settings)
Settings: таблица, содержит следующие поля:
----
DirectoriesFirst, SelectedFirst, RevertSorting, SortGroups
----
Функция Compare
result = Compare (Pi1, Pi2, FarOptions)
FarOptions - таблица, содержащая текущие опции сортировки панели в Far Manager
(все значения - булевые): DirectoriesFirst, SelectedFirst,
RevertSorting, SortGroups, NumericSort, CaseSensitiveSort.

1. Как я понимаю, использование в первом случае 1 и 0 это историческое наследие Си вместо булевых значений, но почему в таблице Settings отсутствуют поля NumericSort, CaseSensitiveSort, если есть SortFunction?

2. Как задать все параметры сортировки разом, и затем уже дать команду сортировки, чтобы FAR не тратил время на последовательную сортировку внутреннего списка при изменении опции за опцией:
pc(PANEL_ACTIVE,"FCTL_SETNUMERICSORT",0,nil)
pc(PANEL_ACTIVE,"FCTL_SETCASESENSITIVESORT",0,nil)
pc(PANEL_ACTIVE,"FCTL_SETSORTORDER",0,nil)
?
Получить текущие флаги PFLAGS_XXX сортировки можно с помощью PanelInfo, а как их установить ДО сортировки и дать команду - отсортировать?



Автор: shmuz2
Дата сообщения: 11.05.2016 16:07

Цитата:
почему в таблице Settings отсутствуют поля NumericSort, CaseSensitiveSort, если есть SortFunction?

Именно потому и отсутствуют, что есть SortFunction. Другими словами, это возлагается на неё в тех случаях, когда это надо.

Цитата:
Как задать все параметры сортировки разом, и затем уже дать команду сортировки

Если не ошибаюсь, то никак, т.е. Far API это не предусматривает.
Автор: Angel_Ka
Дата сообщения: 11.05.2016 17:26
wseventeen
VictorVG4

Увы, обе команды и "start /min /wait cmd /c chcp 65001& dir /b /s /a-d >t.tmp", и "start /i cmd /c chcp 65001&dir /b/s/a-d >dirlist.txt" формируют файл-списки, в которых ёлочки "«" и "»" в именах файлов транслированы соответственно в "<" и ">".

Пока наиболее подходящим для себя способом формирования полноценного бранча консольной командой считаю запуск команды на его создание из пользовательского меню:

Код: b
Метка:
Аналог плагина Branch
---------------------------
Команды:
chcp 65001
tmp:<dir /b /s /a-d *.*
chcp 866
Автор: VictorVG4
Дата сообщения: 11.05.2016 18:17
Angel_Ka

Дык плагин True-BRANCH такими фокусами не страдает. Только что смотрел. А одноимённый макрос нужно переделывать. Сейчас некогда с ним возится.
Автор: Angel_Ka
Дата сообщения: 11.05.2016 20:03
VictorVG4

А у меня на Win10entRu x64 True-BRANCH ещё и не такими фокусами страдал, и поэтому я его отправил в резерв на потом, в надежде на то, что его когда нибудь подработают. Он был самый быстрый на семёрке, но на десятке стал неожиданно разные результаты выдавать на одних и тех же наборах файлов. Но за напоминание о нём спасибо!

Сейчас бранчи очень хорошо делает плагин LuaFAR Search, надёжно, и вдвое быстрее чем Dir. И, как Вы наверняка заметили, уважаемый shmuz обнародовал отдельный производный от LuaFAR Search плагин, специально заточенный для работы с временной панелью — Врем. панель (LuaFAR), несколько более функциональный. Но мне всё равно нужно, чтобы под рукой был исправный альтернативный способ для периодического сравнения — не сбоит ли где что. Как бы такой вариант эталона.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: оффтоп


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.