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

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

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

Maz (26-09-2022 12:52): FAR Manager (часть 7)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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



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

 
Предыдущие топики:  1 2 3 4 5  
 
Где взять последнюю версию?
На странице загрузки скачайте MSI-инсталлятор стабильной сборки нужной вам разрядности (32 или 64 бита) или дистрибутив в виде 7z-архива и установите/распакуйте в любую папку (FAR портабелен и может работать без установки).
Там же на свой страх и риск можно взять наиболее свежую "ночную" сборку (в ночных сборках устраняются выявленные недоработки, добавляются новые функции, но могут содержаться и серьёзные ошибки).
Архив всех предыдущих ночных сборок FAR
Last release на github - собирается практически сразу (в течение получаса) после каждого коммита.
 
Общие сведения о совместимости FAR и плагинов
 
Можно воспользоваться одной из пользовательских сборок FAR Manager
Вопросы, касающиеся сборок, следует задавать непосредственно их авторам, а не на официальном форуме.
 
Где взять дополнительные плагины, скрипты и макросы?
Плагринг. В настоящее время большинство авторов (возможно, уже и все) выкладывают плагины здесь. Кроме плагинов здесь появляется всё относящиеся к FAR: дополнения, консольные шрифты, скрипты и пр.
Анонсы плагинов на официальном форуме. Даже если автор не выкладывает по каким-либо причинам плагин на плагринге, он может дать анонс в этой теме.
Полезные скрипты и макросы.
Шрифт TTF, аналог Terminal 10x18
 
Инструкции по сборке ФАРа из исходников
Набор для самостоятельной сборки ФАРа
Как собрать FAR самостоятельно (старая инструкция)  
 
Ссылки на устаревшие версии
 
Прочее
Портабелизация в FAR 3 плагинов для FAR 1
Выдержка из 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, не удалось, то задаёте вопрос разработчикам.

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

Всего записей: 38758 | Зарегистр. 26-02-2002 | Отправлено: 17:36 15-01-2020 | Исправлено: Luber, 12:33 31-05-2022
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
только Си массивы, стринги не крутятся в циклах, погоды не делают. вся работа идёт между ::START:: и ::FINISH:, там стрингов нет, только си массивы и 1 функция around, в которой тоже только си массивы в циклах.

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 13:19 11-08-2021
Victor_VG



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

Цитата:
только Си массивы

Нет и не бывает "C", "PL/1", "Fortran", и т.д. массивов - для ОС это блок битовых данных с адреса 1 до адреса 2, а вся его интерпретация выполняется прикладной задачей.


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

Всего записей: 33134 | Зарегистр. 31-07-2002 | Отправлено: 13:26 11-08-2021
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
Ну в конце концов, если на Си у вас самый быстрый вариант, так и пусть будет на Си.
 
Добавлено:
Можно не передавать массивы из Lua в Си, а просто передать исходные данные, а из Си получить результат.
Если это вас устроит, могу сделать (при условии точного описания данных туда и обратно).

Всего записей: 1857 | Зарегистр. 09-03-2012 | Отправлено: 13:31 11-08-2021
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Было сказано Си массивы потому, что они ffi с 0 based, а не луа таблицы с 1 based. Lua таблицы ощутимо медленнее.
 
shmuz
Хотелось бы некий пример того, что должно быть в луа скрипте и Си программе, чтобы на базе него мог бы потом создавать другие решения.
 
В данном случае да, можно передать лишь исходные данные - переменные, полученные из обработанной строки введённой пользователем (в луа ввод обрабатывать удобнее + си код меньше).
 
Локализовал все доступные функции:

Код:
local ffi_copy=ffi.copy
local bit_lshift = bit.lshift
local far_FarClock,far_Flags,far_InputBox,far_AdvControl,far_Message = far.FarClock,far.Flags,far.InputBox,far.AdvControl,far.Message
local io_open,io_write = io.open,io.write
local math_floor,math_fmod,math_ceil = math.floor,math.fmod,math.ceil
local panel_GetUserScreen,panel_SetUserScreen = panel.GetUserScreen,panel.SetUserScreen
local string_format,string_gsub,string_sub,string_find,string_match,string_gmatch,string_rep = string.format,string.gsub,string.sub,string.find,string.match,string.gmatch,string.re»
local table_insert = table.insert
local win_GetEnv,win_Utf8ToUtf16,win_Uuid = win.GetEnv,win.Utf8ToUtf16,win.Uuid

- ускорения не наблюдается - они все вне движка, чисто интерфейс. Даже замена ffi.copy на ffi_copy ничего не дала, хотя она единственная внутри движка. Надо вообще от неё отказаться, использовать смещение указателя крыша поехала ))) , это же луа, не си.

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 13:51 11-08-2021 | Исправлено: Alexyz21, 14:09 11-08-2021
shmuz

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

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

Возьмите в качестве примера любую из библиотек, входящих в LuaFAR (bit64.c и/или lregex.c и/или lutf8lib.c и т.д.)

Всего записей: 1857 | Зарегистр. 09-03-2012 | Отправлено: 14:02 11-08-2021
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
посмотрю, может одюжу, хотелось бы попроще чего )

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 14:11 11-08-2021
shmuz

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

Цитата:
хотелось бы попроще чего )

А чего уж проще, чем bit64 или win ? Берёте какую-нибудь знакомую вам ф-цию и смотрите как организован  обмен между Lua и C.

Всего записей: 1857 | Зарегистр. 09-03-2012 | Отправлено: 14:17 11-08-2021
Victor_VG



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

Цитата:
Было сказано Си массивы потому, что они ffi с 0 based, а не луа таблицы с 1 based.  

это уровень представления (6-й уровень по модели OSI/ISO 7489) данных, а для ОС и железа это всегда битовый набор. И вся задача конвертации сводится к инкременту-декременту индексов. ППР.

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

Всего записей: 33134 | Зарегистр. 31-07-2002 | Отправлено: 14:28 11-08-2021
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Вы невнимательно читаете - речь шла о быстродействии и луа массивы (таблицы) проигрывают си массивам ffi, подчеркнул, что были использованы последние.
 
Нашёл такое https://github.com/ManuelBlanc/lua-bit64 , пока не вкурил.

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 16:37 11-08-2021 | Исправлено: Alexyz21, 19:08 11-08-2021
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21 Я вообще-то имел в виду bit64.c и win.c из исходников луафара, хотя это конечно не имеет значения.

Всего записей: 1857 | Зарегистр. 09-03-2012 | Отправлено: 19:22 11-08-2021
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
Сначала надо найти, где они хостятся - нашёл )
 
Ёшкин кот, открыл bit64.c, а в нём такие заклы 80 уровня )))
 
Сдаюсь, согласен на помощь ) Описываю задачу - подключаем в lua скрипте вашу dll, она предоставляет функцию с неизвестным количеством аргументов-беззнаковых чисел. Проще конечно передать строку, но тогда её придётся пилить в си коде, подключать соответствующие либы, размер вырастет, хотелось бы этого избежать. Получил си код последовательность чисел и дальше их обрабатывает мой код, тратит на это неизвестное количество времени, получает 3 массива: uint8_t X*Y*9, uint8_t X*Y, uint16_t X*Y, которые надо вернуть луа скрипту. Надеюсь скрипт в ожидании жрать проц не будет, только dll. Как-то так.

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 19:35 11-08-2021 | Исправлено: Alexyz21, 20:18 11-08-2021
shmuz

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

Цитата:
Сначала надо найти, где они хостятся - нашёл )  

Мне казалось, что на форуме Фара не надо разжёвывать, где исходники Фара и его стандартных плагинов.
 
Добавлено:

Цитата:
Описываю задачу - подключаем в lua скрипте вашу dll

"Моя DLL" должна включать в себя ваш обработчик на Си.
Вы вызываете из Lua функцию DLL с параметрами, внутри DLL эта ф-ция принимает параметры и передаёт их обработчику, находящемуся в той же DLL, по окончанию работы ф-ция возвращает результат в Lua.
Поэтому - давайте ваш обработчик.

Всего записей: 1857 | Зарегистр. 09-03-2012 | Отправлено: 20:05 11-08-2021
Alexyz21



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

Цитата:
"Моя DLL" должна включать в себя ваш обработчик на Си.  Вы вызываете из Lua функцию DLL с параметрами, внутри DLL эта ф-ция принимает параметры и передаёт их обработчику, находящемуся в той же DLL, по окончанию работы ф-ция возвращает результат в Lua.

Совершено верно. Обработчик надо дорабатывать под полученные данные, поэтому желательно dll собирать мне самому в GCC. Сейчас есть для фиксированных входных данных, задаваемых в самом си-коде при инициализации Main(), но сам движок полностью рабочий, подойдёт?
Подробнее...

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 20:34 11-08-2021 | Исправлено: Alexyz21, 20:36 11-08-2021
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вы можете сделать и по-другому: вызвать ваш EXE из Lua с помощью io.popen() и пропарсить результат. Тогда не нужна DLL.
 
Добавлено:

Цитата:
сам движок полностью рабочий, подойдёт?

Подойдёт, единственно что никакой срочности не обещаю.

Всего записей: 1857 | Зарегистр. 09-03-2012 | Отправлено: 20:34 11-08-2021
Alexyz21



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

Цитата:
Подойдёт, единственно что никакой срочности не обещаю.

Никакой срочности, естественно, нет, и только если вам самому это не в напряг.
 
Сейчас там включено логирование 5 6 3 2 1 1 - создаёт лог 104МБ Z:\Temp\ChessKnight.log, который проверяется отдельным чекером:
Подробнее..., сделан для контроля перемещений безумного коня ))

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 20:37 11-08-2021 | Исправлено: Alexyz21, 20:45 11-08-2021
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Она вернёт 3 массива в виде Lua-таблиц.
Далее - разбираться в вашем коде времени нет. Как я говорил уже выше, вы должны мне явно расписать, какие переменные входные, какие выходные.

Всего записей: 1857 | Зарегистр. 09-03-2012 | Отправлено: 20:43 11-08-2021
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
тогда поэксперементирую с io.popen, чтобы не напрягать. Но на будующе было бы полезно (мне) разобраться как взаимодействовать с lua скриптом из си кода.
 
В си коде что надо написать, чтобы массивы полетели в пайп?

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 20:49 11-08-2021 | Исправлено: Alexyz21, 20:58 11-08-2021
shmuz

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

Цитата:
В си коде что надо написать, чтобы массивы полетели в пайп?

printf, puts, putc ...

Всего записей: 1857 | Зарегистр. 09-03-2012 | Отправлено: 21:01 11-08-2021
Alexyz21



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

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 21:13 11-08-2021 | Исправлено: Alexyz21, 21:15 11-08-2021
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Какие ещё бинарные стринги? Только текст, переводы строк допускаются.

Всего записей: 1857 | Зарегистр. 09-03-2012 | Отправлено: 21:17 11-08-2021
   

Страницы: 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 (часть 6)
Maz (26-09-2022 12:52): FAR Manager (часть 7)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru