(бывший "Экспорт / импорт данных LuaMacro") Описание:
Данный скрипт позволяет просматривать данные плагинов, хранящиеся в локальном и глобальном профилях Far-а, редактировать их, экспортировать в файл, а также импортировать из ранее экспортированного файла. По умолчанию предлагаются данные LuaMacro. После выбора другого плагина умолчание меняется до перезагрузки макросов. Формат файла импорта/экспорта текстовый, довольно простой - фактически, .ini-формат с некоторыми дополнительным ограничениями, так что, в принципе, легко редактируемый при надобности. Можно последовательно сохранить несколько разрозненных кусков данных в один файл путём дописывания в конец. Полученный файл можно импортировать в Far.
Вызов главного меню. Позволяет просматривать данные, экспортировать и импортировать. Клавиша вызова: Alt+Shift+F2.
dbshow:[<плагин>][корень] - показ данных из БД умолчательного или указанного плагина ("<" и ">" обязательны);
dbexp:[<плагин>][шаблон] [имя файла] - экспорт ключа или переменной из указанного плагина (< и > обязательны) по указанному шаблону или всей БД;
dbimp:[<плагин>][имя файла] - импорт из указанного файла в указанный плагин (< и > обязательны) или вызов диалога импорта.
require"DBEdit"([<таблица параметров>]) или require"DBEdit".Main([<таблица параметров>]). Поля таблицы:
FileName - имя файла для импорта или экспорта; если не указано, при экспорте формируется по умолчанию, при импорте запрашивается;
plugin - имя плагина, данные которого обрабатываем;
export - шаблон имени экспортируемой переменной (переменных);
import - если истина, импортируем данные из файла;
show - если истина, показать всю БД, если таблица вида {"GLOBAL","IgorZ","'/' sample"} или строка вида "GLOBAL/IgorZ/'//' sample", показать дерево
require"DBEdit".Show([<подключ>[,<плагин>]]). Показ данных из БД.
Подключ - Строка или таблица, задаваемая аналогично show в первом варианте. Если не задан, выводится корень.
Плагин - Строка, имя плагина, базу которого следует показать. Если плагин не указан, берётся БД текущего (или LuaMacro, если плагин ещё не выбирался).
require"DBEdit".Export([<образец>][,<файл>[,<плагин>]]]). Экспорт из БД в файл по шаблону.
Образец - строка. Имена переменных и ключей, совпадающие с образцом, будут экспортироваться. Если не задан, экспортируется всё.
Файл - строка, имя файла для экспорта. Если не указано, составляется автоматически из текущего пути, имени плагина, шаблона и расширения .dbedit.
Плагин - строка, имя плагина, из базы которого следует экспортировать содержимое в файл. Если плагин не указан, берётся БД текущего (или LuaMacro, если плагин ещё не выбирался).
require"DBEdit".Import([<файл>[,<плагин>]]). Импорт из файла в БД.
Файл - строка, имя файла для импорта. Если не указано, запрашивается.
Плагин - |Строка, имя плагина, в базу которого следует импортировать содержимое файла. Если плагин не указан, берётся БД текущего (или LuaMacro, если плагин ещё не выбирался).
Требуемая версия Far 3.0.4324+.
Версия 1.0.0 - Первый релиз.
Версия 1.0.1 - Добавлен выбор действия, если импортируемая переменная существует. Убрано сообщение об ошибке в случае отказа пользователя.
Версия 2.0.0 - Скрипт поменял название, префиксы командной строки тоже изменились. Добавлена возможность создавать, редактировать и удалять переменные в базе. Добавлена возможность выбора плагина. При экспорте из командной строки можно указать шаблон экспортируемого ключа или переменной, и всё, подходящее под шаблон, будет экспортировано. Рефакторинг, мелкие правки.
Версия 2.0.1 - Если локальная или глобальная БД плагина пуста, отрывается сразу корень другой. Переход на выбор LOCAL/GLOBAL - CtrlPgUp. Вывод в заголовке текущего местоположения. Для типа данных F.FST_DATA выводится также значение. Различные правки.
Версия 2.0.2 - Исправлена ошибка со значением переменннй типа FST_DATA, не приводящимся к функции. Экспериментально: при вызове из меню плагинов выводится меню выбора БД. Рефакторинг, исправление мелких ошибок, вылезших в последней версии.
Версия 2.0.3 - Расширенное меню выбора плагина.
Версия 2.1.0 - Скрипт можно использовать как модуль. Исправлена область действия в MenuItem. Разделение префиксов. Переделана справка. Добавлено nfo. Мелкие правки.
Версия 2.1.1 - При вызове модуля можно, указав неверное имя, вызвать меню выбора плагина. CtrlPgUp из меню выбора профиля вызывает меню выбора плагина. Модуль теперь возвращает таблицу функций (старый вариант вызова сохранён). Изменён способ регистрации модуля. Если при вызове модуля в режиме показа не указан явно тип БД (LOCAL/GLOBAL), то скрипт сам выбирает наилучший вариант. CtrlC/CtrlG/CtrlL переходят в тот же ключ в другой/глобальной/локальной базе. Рефакторинг. Мелкие правки.
Версия 2.1.2 - Enter на значении открывает редактирование элемента. Backspace работает как Esc. Рефакторинг. Мелкие правки.
Версия 2.1.3 - Добавлен префикс dbshow:. Для dbexp: можно задавать имя файла. Исправлены ошибки в справке. Рефакторинг.
Версия 2.1.4 - Доработан вызов action-функций с учётом введённых в build 717 параметров для condition/action. Рефакторинг.
Версия 2.1.5 - Исправлена ошибка с обработкой действий в пустом подключе. Переделана обработка FST_DATA. Рефакторинг.
Версия 2.1.6 - Исправлена ошибка с неюникодной строкой значения типа FST_DATA.
╔══════════════════════════════════════════════════════ Error ════════════════════════════════════════════════╗
║ C:\FAR3\Plugins\LuaMacro\LuaMacro.dll: ║
║ C:\FAR3\Profile\Macros\scripts\DBEdit.lua:393: invalid UTF-8 code ║
║ stack traceback: ║
║ [C]: in function 'byte' ║
║ C:\FAR3\Profile\Macros\scripts\DBEdit.lua:393: in function 'DATAToStrings' ║
║ C:\FAR3\Profile\Macros\scripts\DBEdit.lua:461: in function 'ShowMenu' ║
║ C:\FAR3\Profile\Macros\scripts\DBEdit.lua:603: in function 'action' ║
║ C:\FAR3\Plugins\LuaMacro\LuaMacro.lua:479: in function <C:\FAR3\Plugins\LuaMacro\LuaMacro.lua:428> ║
╟─────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
Упс... Прошу прощения, только сейчас дошло, что проверял на "условно-стабильной" сборке 5577, в которой этого нововведения ещё не было. Переделаю.
P. S. Собственно, переделка оказалась элементарной. Строку 393 меняем с
╔══════════════════════════════════════════════════════ Error ════════════════════════════════════════════════╗
║ C:\FAR3\Plugins\LuaMacro\LuaMacro.dll: ║
║ C:\FAR3\Profile\Macros\scripts\DBEdit.lua:393: invalid UTF-8 code ║
║ stack traceback: ║
║ [C]: in function 'byte' ║
║ C:\FAR3\Profile\Macros\scripts\DBEdit.lua:393: in function 'DATAToStrings' ║
║ C:\FAR3\Profile\Macros\scripts\DBEdit.lua:461: in function 'ShowMenu' ║
║ C:\FAR3\Profile\Macros\scripts\DBEdit.lua:603: in function 'action' ║
║ C:\FAR3\Plugins\LuaMacro\LuaMacro.lua:479: in function <C:\FAR3\Plugins\LuaMacro\LuaMacro.lua:428> ║
╟─────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
Исправлена ошибка с неюникодной строкой значения типа FST_DATA. Проверил на сборке 5587 и БД RESearch - работает нормально, AllCP отображает и не падает.