Latest post of the previous page:
Smitis, для масок файлов можно использовать \ вместо запятой. В именах файла такого символа быть не может. Хотя, конечно, получается не очень наглядно.Переопределение символа-разделителя при создании папок
- buniak_a_h
- Posts: 3969
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 204 times
- Been thanked: 597 times
- Contact:
Переопределение символа-разделителя при создании папок
А как, например, во временной панели (и, возможно, каких-то панелях с полным путём)? Например, хочется отметить все файлы
*\Far Manager\*
- как быть? - Taciturn
- Posts: 569
- Joined: Thu 26 May, 2005 17:14
- Location: Санкт-Петербург
- Has thanked: 84 times
- Been thanked: 25 times
- Contact:
Переопределение символа-разделителя при создании папок
buniak_a_h, про временную панель я не подумал, там действительно может быть \ и он там работает.
- buniak_a_h
- Posts: 3969
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 204 times
- Been thanked: 597 times
- Contact:
Переопределение символа-разделителя при создании папок
На самом деле правильнее было бы в качестве символа-исключения использовать что-то другое. Например, двухсимвольный
||
- buniak_a_h
- Posts: 3969
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 204 times
- Been thanked: 597 times
- Contact:
Переопределение символа-разделителя при создании папок
Плохо, что маски файлов участвуют во многих-многих диалогах (и множество это открытое). Поэтому сформулировать условие преобразования строки затруднительно… Кроме как перечислением есть идеи? Можно привязаться к 7-му элементу DI_EDIT-а (History): если он указан, то должен заканчиваться на Masks
- Smitis
- Posts: 1705
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Переопределение символа-разделителя при создании папок
Я бы предложил символ | в качестве разделителя, а || для исключений (то, что сейчас делает одиночный символ).buniak_a_h wrote: ↑Tue 31 Jan, 2023 23:52 На самом деле правильнее было бы в качестве символа-исключения использовать что-то другое. Например, двухсимвольный
Разум когда-нибудь победит.
- buniak_a_h
- Posts: 3969
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 204 times
- Been thanked: 597 times
- Contact:
- Smitis
- Posts: 1705
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Переопределение символа-разделителя при создании папок
А, ну да. Что-то заработался. Половину строчки вижу, половину не замечаю...

Разум когда-нибудь победит.
- buniak_a_h
- Posts: 3969
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 204 times
- Been thanked: 597 times
- Contact:
Переопределение символа-разделителя при создании папок
Вот "развесистый" скрипт:
Проверено для создания папки и отметки файлов; также предусмотрено для ввода/редактирования пользовательского фильтра и копирования/переименования (хотя последнее - лишнее. Но не стал громоздить проверки). Также предусмотрена работа в диалоге, если имя истории элемента ввода оканчивается на
Известная проблема: в диалоге отметки/разотметки запоминается не введённое значение, а то, в которое оно преобразуется; именно оно подставляется в качестве инициального при повторном вызове диалога. При этом в историю пишется именно введённое значение! Такое впечатление, что когда писался этот кусок не было флага DIF_USELASTHISTORY, и запоминание последнего введённого значения реализовано "левым" способом (в переменную внутри ФАРа). Как с этим бороться -я не знаю. Мне кажется, это неудобно. Если авторы сюда заходят, и сочтут замечание логичным и справедливым, то, наверное, привести этот диалог к общим правилам просто.
Ну и для удобства скачивания:
Проверено для создания папки и отметки файлов; также предусмотрено для ввода/редактирования пользовательского фильтра и копирования/переименования (хотя последнее - лишнее. Но не стал громоздить проверки). Также предусмотрена работа в диалоге, если имя истории элемента ввода оканчивается на
Masks
(проверялось на диалоге отметки файлов).Известная проблема: в диалоге отметки/разотметки запоминается не введённое значение, а то, в которое оно преобразуется; именно оно подставляется в качестве инициального при повторном вызове диалога. При этом в историю пишется именно введённое значение! Такое впечатление, что когда писался этот кусок не было флага DIF_USELASTHISTORY, и запоминание последнего введённого значения реализовано "левым" способом (в переменную внутри ФАРа). Как с этим бороться -я не знаю. Мне кажется, это неудобно. Если авторы сюда заходят, и сочтут замечание логичным и справедливым, то, наверное, привести этот диалог к общим правилам просто.
Ну и для удобства скачивания:
Last edited by buniak_a_h on Thu 02 Feb, 2023 06:54, edited 1 time in total.
- buniak_a_h
- Posts: 3969
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 204 times
- Been thanked: 597 times
- Contact:
Переопределение символа-разделителя при создании папок
Т.к. исправления ошибки (особенности), описанной здесь, я не дождался, то пытаюсь исправить этот глюк макросом. Получился такой скрипт:
- buniak_a_h
- Posts: 3969
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 204 times
- Been thanked: 597 times
- Contact:
Переопределение символа-разделителя при создании папок
Обращение к Dlg в condition в некоторых случаях вызывает падение ФАРа. Заменён на анализ флагов элемента диалога.