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

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

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

Maz (15-01-2020 17:38): FAR Manager (часть 6)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 200

   

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
Предыдущие топики:  1 2 3 4
 
Где взять последнюю версию?
На странице загрузки скачайте MSI-инсталлятор стабильной сборки нужной вам разрядности (32 или 64 бита) или дистрибутив в виде 7z-архива и установите/распакуйте в любую папку (FAR портабелен и может работать без установки).
Там же на свой страх и риск можно взять наиболее свежую "ночную" сборку (в ночных сборках устраняются выявленные недоработки, добавляются новые функции, но могут содержаться и серьёзные ошибки).
Архив всех предыдущих ночных сборок FAR
Last release на github - собирается практически сразу (в течение получаса) после каждого коммита.
 
Общие сведения о совместимости 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, иначе плагин не будет загружен.
* Блондинку на скриншоте зовут Tommie Jo.

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

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

Всего записей: 38842 | Зарегистр. 26-02-2002 | Отправлено: 18:55 23-11-2017 | Исправлено: Victor_VG, 10:00 09-09-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
что значит никакой? - не открыт? - да.
 
Понял, остановил, выгрузил, ASIO освобождён Подробнее...

Всего записей: 3488 | Зарегистр. 16-06-2007 | Отправлено: 13:24 21-11-2019 | Исправлено: Alexyz21, 13:25 21-11-2019
wseventeen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21 Так гораздо лучше, а то был тупик.

Всего записей: 1417 | Зарегистр. 20-12-2007 | Отправлено: 13:52 21-11-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
предыдущая работает, пользуюсь.

Всего записей: 3488 | Зарегистр. 16-06-2007 | Отправлено: 13:55 21-11-2019
wseventeen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21 dll по ссылке обновлен.
попробуйте конфигурацию asio в плагине (со свободным ASIO).

Всего записей: 1417 | Зарегистр. 20-12-2007 | Отправлено: 14:04 21-11-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
по-прежнему shift только 0, без вариантов. Он играет, но в первых 2-х каналах, как и должно для 0.

Всего записей: 3488 | Зарегистр. 16-06-2007 | Отправлено: 14:17 21-11-2019 | Исправлено: Alexyz21, 14:18 21-11-2019
wseventeen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
Цитата:
по-прежнему shift только 0

Ещё раз (копипаста вмешалась).
 
 
Добавлено:
Ещё раз == ссылка обновлена, надо перекачать и проверить настройки.

Всего записей: 1417 | Зарегистр. 20-12-2007 | Отправлено: 14:32 21-11-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wseventeen
теперь вижу 8 каналов, а поле 1, а каналов 2, как я понимаю, выбираем левый, правый будет следующим, так и есть. но не совсем очевидно. Правда методом тыка разобраться элементарно.
 
По остановке проигрывания ASIO освобождается? - AlbumPlayer рухнул при запуске псоле проигрывания в AudioPlayer.  
 
С громкостью непонятки - дБ на 3 ниже

Всего записей: 3488 | Зарегистр. 16-06-2007 | Отправлено: 17:07 21-11-2019 | Исправлено: Alexyz21, 17:20 21-11-2019
wseventeen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
asio освобождается, у меня не падает. но у меня только asio4all.
 
Громкость выставляетчя через BASS_ASIO_SetChannelVolume(FALSE, -1, 0..1),
если есть информация как делать правильнее - дайте ссылку.

Всего записей: 1417 | Зарегистр. 20-12-2007 | Отправлено: 19:00 21-11-2019
Alexyz21



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

Всего записей: 3488 | Зарегистр. 16-06-2007 | Отправлено: 19:30 21-11-2019
wseventeen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ничего не менялось.
Скорее всего влияют неучтенные внешние различия.

Всего записей: 1417 | Зарегистр. 20-12-2007 | Отправлено: 19:53 21-11-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wseventeen
не, после использования обоих версий драйверу плохеет, иногда помогает перезапуск фара, а иногда только перезагрузка ХП.

Всего записей: 3488 | Зарегистр. 16-06-2007 | Отправлено: 20:22 21-11-2019
wseventeen

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

Цитата:
после использования обоих версий драйверу плохеет

будьте более конкретны.
от такого фидбэка пользы 0.

Всего записей: 1417 | Зарегистр. 20-12-2007 | Отправлено: 21:34 21-11-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wseventeen
а как конкретнее? - начинает глючить инициализация вывода звука в других плейерах - RarmaRadio PCM на bass, AlbumPlayer ASIO на ffmpeg, закрываешь фар - перезагружаешь плейера - играют. Словно AudioPlayer не освобождает звуковое устройство

Всего записей: 3488 | Зарегистр. 16-06-2007 | Отправлено: 21:37 21-11-2019 | Исправлено: Alexyz21, 21:41 21-11-2019
wseventeen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уже конкретнее.
Если ещё будут детали - всегда или нет, если нет - выявить плохую-хорошую последовательность действий... Кроме вас похоже других пользователей ASIO нет, по крайней мере отзывов больше нет.
 
Добавлено:
Кроме того ASIO на XP, думаю не слишком распространённый вариант.

Всего записей: 1417 | Зарегистр. 20-12-2007 | Отправлено: 21:55 21-11-2019
Alexyz21



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

Цитата:
ASIO на XP, думаю не слишком распространённый вариант

Как раз наоборот, KS в отличие от wasapi полуподпольный.

Всего записей: 3488 | Зарегистр. 16-06-2007 | Отправлено: 22:08 21-11-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Получение списка файлов в директории
 
Задача решается двумя возможными способами:
 
1) через far.GetDirList(<dir>) в цикле for :

Код:
local dir,itm,atr,list = far.GetDirLst(dirname),{},{},"";
 
for  j = 1,#dir do
 list = list..dir[j].FileName.."  "..dir[j].FileAttributes.."\n"
end
 
list = mf.trim(list)
far.Show(list)

результат:  
 
в переменную list будет помещено полное дерево каталогов от указанной директории с путями и буквенными значениями атрибутов файлов и каталогов, отладочная функция far.Show() выведет его на экран в виде своего единственного многострочного аргумента с разделителями "перевод каретки" ("новая строка");
 
2) через функции панелей, свойства APanel.ItemCount/PPanel.ItemCount и свойство "имя файла на панели" получаемое вызовом  Panel.Item(0,<index>,0), на примере активной панели:

Код:
local list = "";
 
for j=1,APanel.ItemCount do
   list = list..Panel.Item(0,j,0).."  "..win.GetFileAttr(Panel.Item(0,j,0)).."\n"
end
 
list = mf.trim(list)
far.Show(list)

в списке будут указаны только имена файлов и каталогов в текущем каталоге т.к. цикл не рекурсивный;
 
атрибуты в обоих случаях выводятся в виде строки символов и будут иметь значения:
 
  a - архивный
  c - сжатый (только на NTFS, ReFS)
  d - каталог
  e - точка повторного анализа (точка монтирования)
  h - скрытый
  i - не индексируемый
  n - зашифрованный
  o - оффлайн
  p - разреженный
  r - только для чтения
  s - системный
  t - временный
  u - нет данных очистки
  v - виртуальный

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33240 | Зарегистр. 31-07-2002 | Отправлено: 22:41 22-11-2019
shmuz

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

Цитата:
1) через far.GetDirList(<dir>) в цикле for :

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

Цитата:
2) через функции панелей

А если нужно получить файлы из произвольной папки, значит нужно её сначала вывести на панель? Это тоже может занять кучу времени, с раскраской и сортировкой.
 
Самое универсальное в контексте Фара решение - функция far.RecursiveSearch.

Всего записей: 1863 | Зарегистр. 09-03-2012 | Отправлено: 23:10 22-11-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
 
Я эту задачу решал в IntChecker.Run через семафор управления рекурсией chex() поскольку случай "только в текущем каталоге" для неё частный, а вот случай типа "для файлов в текущем каталоге и во всех вложенных подкаталогах" довольно типичный. Но, коли KotSerg хватит только текущего каталога, то и far.GetDirList() ему не нужна.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33240 | Зарегистр. 31-07-2002 | Отправлено: 23:54 22-11-2019
shmuz

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

Цитата:
Я эту задачу решал в IntChecker.Run через семафор управления рекурсией chex()

А что это за зверь "семафор управления рекурсией chex()" ? Для меня это китайская грамота.

Всего записей: 1863 | Зарегистр. 09-03-2012 | Отправлено: 00:34 23-11-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
 
логическая переменная которая управляет возможностью входить в подкаталоги:

Код:
local function chex(hn,pth,ft,r)
local ICId = "E186306E-3B0D-48C1-9668-ED7CF64C0E65";
--[[
The function for calculating file checksums with support full or relative
UNC paths specified relative to the current panel directory, controlled
recursive processing of directories, partial correction of input errors
for UNC paths and checking the availability of the target object (the user
may not have access rights to it).
 
User can break calculation if pressed ESC key then returned ErrCode = 4.
 
Input parameters:
 
hn  - is hash algorithm name, string
pth - target UNC path, string
ft  - output record format code, false - GNU (default), true - BSD, boolean;
r   - recursion flag true - enable, false - disable (default), boolean;
 
Returned table included fields by order:
 
ErrCode    - Error code, integer, value is:
              0 - Success, no errors, HashSumm is valid;
              1 - Empty folder, recursion is disabled or no files found, HashSumm
                  is empty and ObjPath is UNC path;
              2 - Target not exist, HashSumm is invalid and ObjPath is UNC path;
              3 - File Access Denied, FileErrCnt greater 0, HashSumm exclude this files;
              4 - User press break hotkey, FileSucCnt is valid, DirCnt is wrong,
                  HashSumm last string is "Cancel";
HashSumm   - calculated hash sum, string, substring separator is "\n";
ObjPath    - UNC path to object, string;
DirCnt     - scaned directories count, integer;
FileAllCnt - files all count, integer;
FileSucCnt - files success count, integer;
FileErrCnt - files error count, integer;
--]]
 
   local r0,sum0,s0,f0,d0,p,pnt,dc,ec,err,fc,fa,ft0 = false,"","","","","","",0,0,0,0,0,false;
   r = tostring(r)
   if r:find("true") then r0 = true elseif r:find("false") then r0 = false else r0 = false end;
   if pth:find("\\$") then p = pth:sub(0,-2) elseif pth:find("/$") then
    p = pth:sub(0,-2) else p = pth end;
   ft = tostring(ft)
    if ft:find("true") then ft0 = true elseif ft:find("false") then ft0 = false end;
   if mf.fexist(p) then
    if #mf.fsplit(p,1) == 0 then p = far.ConvertPath(p); pnt = win.GetFileInfo(p).FileName.."\\"; else pnt = "" end
    local dr,da,dn = far.GetDirList(p),{},{};
    if #dr == 0 then
     f0 = win.GetFileInfo(p).FileName
     d0 = p:sub(0, - #f0 - 2);
     fc = 1
     dc = 0
     sum0 = tostring(Plugin.SyncCall(ICId,"gethash",""..hn.."",""..p.."",true));
     if sum0:find("nil") then
      ec = 1
      err = 3
     elseif sum0:find("userabort") then
      ec = 1
      err = 4
      sum0 = "Cancel"
     else
      if ft0 then s0 = hn.." ("..f0..") = "..sum0 else s0 = sum0.." *"..f0; end;
      fa = 1
     end;
    else
     local sem = false;
     d0 = p
     dc = #dr;
     for j = 1,#dr do
      da[j] = dr[j].FileAttributes
      dn[j] = dr[j].FileName
      if not da[j]:find("d") then
       f0 = dn[j]:sub(#p + 2)
       if r0 then sem = true else if not dn[j]:find("\\",#p + 2) then sem = true else sem = false end end;
       if sem then
        fa = fa + 1
         sum0 = tostring(Plugin.SyncCall(ICId,"gethash",""..hn.."",""..dn[j].."",true));
        if sum0 == "userabort" then
         ec = ec + 1
         err = math.max(err,4)
         sum0 = "Cancel"
         break
        elseif sum0 == "nil" then
         ec = ec + 1
         err = math.max(err,3)
        else
         fc = fc + 1
         if ft0 then s0 = s0..hn.." ("..pnt..f0..") = "..sum0.."\n" else s0 = s0..sum0.." *"..pnt..f0.."\n" end;
        end
       end
      end;
     end
      if r0 then dc = dc - fa else dc = 0 end
    end
     if #s0 == 0 and r0 then err = math.max(err,1) end
   else
     err = 2
     s0 = ""
     d0 = p
   end
   local ret = { ErrCode = err, HashSumm = mf.trim(s0), ObjPath = d0, DirCnt = dc, FileAllCnt = fa, FileSucCnt = fc, FileErrCnt = ec };
   return ret;
 end;

если r == false то подкаталоги игнорируются фильтром по атрибуту "d":

Код:
       if r0 then sem = true else if not dn[j]:find("\\",#p + 2) then sem = true else sem = false end end;
       if sem then
  .....
 

который в этом случае пропускает текущий элемент дерева. Можно было бы использовать и far.RecursiveSearch() но я в тот момент не стал с ней возится, хотя не исключаю её использование если она упростит и ускорит логику chex(). Пока я не готов к очередному циклу переделок - получил "подарок" от Seagate Expansion+ - если подключить этот HDD то результат либо паника ядра, либо не видна файловая система других дисков. Похоже его придётся весь нулями чистить а не только сектора с 0, 62 - 87. Или обратно по гарантии волочь и доказывать что этот диск неисправен...

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33240 | Зарегистр. 31-07-2002 | Отправлено: 01:32 23-11-2019
   

Страницы: 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 200

Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 5)
Maz (15-01-2020 17:38): FAR Manager (часть 6)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru