Переопределение символа-разделителя при создании папок

Здесь обсуждается всё, что касается макросов.
User avatar
Taciturn
Posts: 600
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

Переопределение символа-разделителя при создании папок

Post by Taciturn »

Latest post of the previous page:

Smitis, для масок файлов можно использовать \ вместо запятой. В именах файла такого символа быть не может. Хотя, конечно, получается не очень наглядно.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Переопределение символа-разделителя при создании папок

Post by Smitis »

Taciturn, и везде будет по разному. В путях одни разделители, в масках другие. Запутаешься.
Разум когда-нибудь победит.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Переопределение символа-разделителя при создании папок

Post by buniak_a_h »

Taciturn wrote: Tue 31 Jan, 2023 15:56 Smitis, для масок файлов можно использовать \ вместо запятой. В именах файла такого символа быть не может.
А как, например, во временной панели (и, возможно, каких-то панелях с полным путём)? Например, хочется отметить все файлы *\Far Manager\* - как быть?
User avatar
Taciturn
Posts: 600
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

Переопределение символа-разделителя при создании папок

Post by Taciturn »

buniak_a_h, про временную панель я не подумал, там действительно может быть \ и он там работает.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Переопределение символа-разделителя при создании папок

Post by buniak_a_h »

Taciturn wrote: Tue 31 Jan, 2023 15:56 Smitis, для масок файлов можно использовать \ вместо запятой.
Smitis wrote: Tue 31 Jan, 2023 16:12 Taciturn, и везде будет по разному. В путях одни разделители, в масках другие. Запутаешься.
На самом деле правильнее было бы в качестве символа-исключения использовать что-то другое. Например, двухсимвольный ||
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Переопределение символа-разделителя при создании папок

Post by buniak_a_h »

Плохо, что маски файлов участвуют во многих-многих диалогах (и множество это открытое). Поэтому сформулировать условие преобразования строки затруднительно… Кроме как перечислением есть идеи? Можно привязаться к 7-му элементу DI_EDIT-а (History): если он указан, то должен заканчиваться на Masks
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Переопределение символа-разделителя при создании папок

Post by Smitis »

buniak_a_h wrote: Tue 31 Jan, 2023 23:52 На самом деле правильнее было бы в качестве символа-исключения использовать что-то другое. Например, двухсимвольный
Я бы предложил символ | в качестве разделителя, а || для исключений (то, что сейчас делает одиночный символ).
Разум когда-нибудь победит.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Переопределение символа-разделителя при создании папок

Post by buniak_a_h »

Smitis, ну да, я так и написал.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Переопределение символа-разделителя при создании папок

Post by Smitis »

buniak_a_h wrote: Wed 01 Feb, 2023 14:33 Smitis, ну да, я так и написал.
А, ну да. Что-то заработался. Половину строчки вижу, половину не замечаю... :(
Разум когда-нибудь победит.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Переопределение символа-разделителя при создании папок

Post by buniak_a_h »

Вот "развесистый" скрипт:

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

Переопределение символа-разделителя при создании папок

Post by buniak_a_h »

Т.к. исправления ошибки (особенности), описанной здесь, я не дождался, то пытаюсь исправить этот глюк макросом. Получился такой скрипт:
MakeFolders.lua
(4.21 KiB) Downloaded 38 times
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Переопределение символа-разделителя при создании папок

Post by buniak_a_h »

Обращение к Dlg в condition в некоторых случаях вызывает падение ФАРа. Заменён на анализ флагов элемента диалога.
MakeFolders.lua
(4.29 KiB) Downloaded 41 times
Post Reply

Return to “Обсуждение макросов”