Latest post of the previous page:
Желательно в шапке привести и код.Макросы для работы с описаниями файлов
- John Doe
- Бюрократ
- Posts: 13855
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Макросы для работы с описаниями файлов
Почему не
И неплохо бы какое-то краткое описание без спойлера.
[codebox=lua file=untitled.lua]
?И неплохо бы какое-то краткое описание без спойлера.
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Макросы для работы с описаниями файлов
Сделаю. Мало опыта делать такие шапки. К code2 не привык ещё...John Doe wrote:Почему не[codebox=lua file=untitled.lua]
?
И неплохо бы какое-то краткое описание без спойлера.
Разум когда-нибудь победит.
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Re: Макросы для работы с описаниями файлов
Не прошло и суток - версия 1.02 макроса descss.lua
Изменения:
- При отметке/снятия отметки проверяется опция ФАРа Panel.SelectFolders (если false, выделение папок не затрагивается).
- Конфигурация - все макроклавиши можно задать в таблице в начале макроса. Причём, при пустой строке макрос отключается. Там же опция, циклический поиск или нет.
- Локализация english, russian (громко сказано, там всего по три строчки ). Язык определяется через переменную среды FARLANG. Если язык отличный от английского/русского, устанавливается английский.
И надо упомянуть, от последних ломок macro api макрос не зависит. Работать должен на версиях ФАРа как до ломки, так и после.
Изменения:
- При отметке/снятия отметки проверяется опция ФАРа Panel.SelectFolders (если false, выделение папок не затрагивается).
- Конфигурация - все макроклавиши можно задать в таблице в начале макроса. Причём, при пустой строке макрос отключается. Там же опция, циклический поиск или нет.
- Локализация english, russian (громко сказано, там всего по три строчки ). Язык определяется через переменную среды FARLANG. Если язык отличный от английского/русского, устанавливается английский.
И надо упомянуть, от последних ломок macro api макрос не зависит. Работать должен на версиях ФАРа как до ломки, так и после.
Разум когда-нибудь победит.
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Re: Макросы для работы с описаниями файлов
Версия 1.03
- Добавлен файл конфигурации (за идею определения пути к скрипту персональное спасибо John Doe), использование файла является факультативным.
- Исправлено сравнение через match (осталось после замены find). Как ни странно, на работу не влияло.
- Строка иницилизации в макросах делается "изменённая" (что бы удобнее было сразу продолжать ввод).
- В макросе Alt. (т.е. в котором задана начальная маска) сразу делается переход на ближайшее совпадение.
- Добавлен файл конфигурации (за идею определения пути к скрипту персональное спасибо John Doe), использование файла является факультативным.
- Исправлено сравнение через match (осталось после замены find). Как ни странно, на работу не влияло.
- Строка иницилизации в макросах делается "изменённая" (что бы удобнее было сразу продолжать ввод).
- В макросе Alt. (т.е. в котором задана начальная маска) сразу делается переход на ближайшее совпадение.
Разум когда-нибудь победит.
- John Doe
- Бюрократ
- Posts: 13855
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: Макросы для работы с описаниями файлов
Лучше так: debug.getinfo(1,"S").sourceCode: Select all
do local f,m=loadfile(debug.getinfo(function()end).source:match("^@(.+)"):gsub(".lua$",".cfg"))
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Re: Макросы для работы с описаниями файлов
Спасибо, попробую. Я ещё с этим debug не разбирался, некогда было.John Doe wrote:Лучше так: debug.getinfo(1,"S").source
Разум когда-нибудь победит.
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Re: Макросы для работы с описаниями файлов
DESCSS 1.04
- Использовать match для проверки клавиши в диалоге была не самая лучшая идея (возможны частичные совпадения). Пришлось доработать проверку.
CTRLZ 1.02
- Для некоторых макросов поле ввода делается "изменённым" (AltZ, AltV).
- Убрал проверку того, что новое введённое значение == старому значению. Раньше в этом случае макрос ничего не делал - нет изменений, нечего и сохранять описание. На самом деле, обычный CtrlZ при чтении описания отбрасывает начальные и завершающие пробелы. А при сохранении - нет, хотя они и не показываются в панелях. Поэтому descript.ion может быть уже другим.
- Отбрасываются начальные и конечные пробельные символы.
- Использовать match для проверки клавиши в диалоге была не самая лучшая идея (возможны частичные совпадения). Пришлось доработать проверку.
CTRLZ 1.02
- Для некоторых макросов поле ввода делается "изменённым" (AltZ, AltV).
- Убрал проверку того, что новое введённое значение == старому значению. Раньше в этом случае макрос ничего не делал - нет изменений, нечего и сохранять описание. На самом деле, обычный CtrlZ при чтении описания отбрасывает начальные и завершающие пробелы. А при сохранении - нет, хотя они и не показываются в панелях. Поэтому descript.ion может быть уже другим.
- Отбрасываются начальные и конечные пробельные символы.
Разум когда-нибудь победит.
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Макросы для работы с описаниями файлов
DescriptionMultiEdit - Многострочный редактор описаний
Пределка CtrlZ в качестве эскперимента в продолжении темы http://forum.farmanager.com/viewtopic.p ... 5&start=32
Мне было лень делать даже простые диалоги, поэтому для работы требует DialogClass v.1.10 (а кроме того диалог будет потом переделан в более сложный для личных нужд).
Вызов диалога редактирования описания CtrlZ.
Переход к многострочному редактированию из диалога - CtrlE или F4.
Если результат одна строка (нет символов 0x0A), всё остаётся как есть, символы 0x04 0xC2 в конце удаляются. Иначе, разделители строк заменяются на \n (два символа!), в конце дописывается 0x04 0xC2, типа, формат, совместимый с TotalCommander. Совместимость только при сохранении описаний в ANSI кодировке (в настройках ФАРа опция "Use ANSI code page by default" установлена, опция "Save in UTF8" сброшена.)
DescriptionMultiEdit 2.03
Пределка CtrlZ в качестве эскперимента в продолжении темы http://forum.farmanager.com/viewtopic.p ... 5&start=32
Мне было лень делать даже простые диалоги, поэтому для работы требует DialogClass v.1.10 (а кроме того диалог будет потом переделан в более сложный для личных нужд).
Вызов диалога редактирования описания CtrlZ.
Переход к многострочному редактированию из диалога - CtrlE или F4.
Если результат одна строка (нет символов 0x0A), всё остаётся как есть, символы 0x04 0xC2 в конце удаляются. Иначе, разделители строк заменяются на \n (два символа!), в конце дописывается 0x04 0xC2, типа, формат, совместимый с TotalCommander. Совместимость только при сохранении описаний в ANSI кодировке (в настройках ФАРа опция "Use ANSI code page by default" установлена, опция "Save in UTF8" сброшена.)
DescriptionMultiEdit 2.03
Last edited by Smitis on Mon 07 Dec, 2015 09:58, edited 4 times in total.
Разум когда-нибудь победит.
Макросы для работы с описаниями файлов
А зачем городить несовместимые между собой способы, уже применяемые в Total Commander, и предлагаемый сейчас в FAR?
Ведь в результате придётся выполнять тройную работу: также сделать способ поддержки, принятый в Total Commander, а потом ещё и убеждать автора Total Commander поддерживать способ, принятый в FAR, чтобы обеспечить взаимную совместимость описаний при обмене пользователей файлами.
Ведь в результате придётся выполнять тройную работу: также сделать способ поддержки, принятый в Total Commander, а потом ещё и убеждать автора Total Commander поддерживать способ, принятый в FAR, чтобы обеспечить взаимную совместимость описаний при обмене пользователей файлами.
Макросы для работы с описаниями файлов
К тому же возникает ещё одна проблема: к одному общепринятому способу присоединятся другие разработчики, и реализуют этот же способ в своих программах, но реализовывать несколько альтернативных правил они вряд ли возьмутся, решив резонно подождать того времени, когда будет принят единственный способ обработки.
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Макросы для работы с описаниями файлов
Неизвестно ещё кто нагородил. По-моему, нагородил как раз автор TC придумав свой способ, несовместимый с существующим ещё с ДОСа однострочным форматом, да ещё и кривой (использование "управляющих" "псевдосимволов" \n как разделителя я считаю кривым способом). То, что ТС до сих пор не поддерживает юникод говорит скорее всего о том, что автору пофиг на эти описания.
А вот если придумать нормальный и логичный формат и его поддержат другие авторы, вот тогда автора ТС можно ткнуть носом - дорабатывай! А иначе даже не почешится.
Я пока предлагаю вариант.
А вот если придумать нормальный и логичный формат и его поддержат другие авторы, вот тогда автора ТС можно ткнуть носом - дорабатывай! А иначе даже не почешится.
Я пока предлагаю вариант.
Разум когда-нибудь победит.
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Макросы для работы с описаниями файлов
Конечно же, Гислер нагородил с описаниями.
Вот, например, эти псевдоуправляющие двойные символы-разделители \n зачем? Например, я иногда храню в описаниях пути. Если путь будет в многострочном описании все \ придётся удвоить и как это будет выглядеть в столбце описаний - сплошные двойные \\, а перед именем, начинающимся с n ещё и тройные \\\n.
Откуда взялись эти 0x04 0xC2? Судя по всему, это позаимствовано у JPSoft. Но там после этих символов идёт информация сторонней программы (TotalCommander), а не перед.
Вот, например, эти псевдоуправляющие двойные символы-разделители \n зачем? Например, я иногда храню в описаниях пути. Если путь будет в многострочном описании все \ придётся удвоить и как это будет выглядеть в столбце описаний - сплошные двойные \\, а перед именем, начинающимся с n ещё и тройные \\\n.
Откуда взялись эти 0x04 0xC2? Судя по всему, это позаимствовано у JPSoft. Но там после этих символов идёт информация сторонней программы (TotalCommander), а не перед.
Разум когда-нибудь победит.
Макросы для работы с описаниями файлов
Многострочности первоначально не было, но реальность такова, что пользователям она нужна, и приходится изощряться. В XnView она просто необходима.
Просто замена символа для различения многострочности от действительного конца строки-записи описания, тут приведёт к коллизиям с некоторыми спецсимволами, а замена на печатные символы не даст эту комбинацию использовать пользователям. Существующая в Си традиционная замена с префиксом "\" вполне понятно большинству образованных людей, удобочитаема в "сыром" виде, и допускает однозначное обратное декодирование.
Тут важна даже не лучшесть, а поддержка всеми разработчиками различных программ. Кто раньше применил, тот и навязал стандарт, а если он ущербен, то необходимо уже общение разработчиков между собой. Я своё дело сделал, обозначив проблему
P.S.
Бояться избыточности не стоит, ибо сейчас нет ограничения в ресурсах, а вероятность использования \n в исходном описании ничтожно мала. Двойные \\ используются в реестре, и никого это не смущает...
Просто замена символа для различения многострочности от действительного конца строки-записи описания, тут приведёт к коллизиям с некоторыми спецсимволами, а замена на печатные символы не даст эту комбинацию использовать пользователям. Существующая в Си традиционная замена с префиксом "\" вполне понятно большинству образованных людей, удобочитаема в "сыром" виде, и допускает однозначное обратное декодирование.
Тут важна даже не лучшесть, а поддержка всеми разработчиками различных программ. Кто раньше применил, тот и навязал стандарт, а если он ущербен, то необходимо уже общение разработчиков между собой. Я своё дело сделал, обозначив проблему
P.S.
- это не так, потому как это не имя начинающееся с "n...", а перевод строки за "\".
Бояться избыточности не стоит, ибо сейчас нет ограничения в ресурсах, а вероятность использования \n в исходном описании ничтожно мала. Двойные \\ используются в реестре, и никого это не смущает...
- HaRT
- Moderator
- Posts: 10863
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Макросы для работы с описаниями файлов
Какая чушь!
Не путайте образованность и профессиональные знания.
Вы недооцениваете важность удобоваримости однострочного представления описания при использовании инструментов, которые (пока?) не поддерживают многострочные описания. Вообще-то я уверен, что поддержка многострочных описаний в ближайшие 10 лет не будет внесена в ядро Фара.
Ерунда.
Вам же привели пример: в описании фигурирует какой-то путь в файловой системе. N — достаточно распространённая буква для начала имени файла/папки.
Фар есть инструмент, а не нянька. © 2009 DrKnS