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

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

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

Post by Taciturn »

Можно ли как-то переопределить символ-разделитель при создании папок? Может какой-то настройкой в far:config?
Что «;», что «,» вполне валидные символы для имён каталогов, не очень интересно каждый раз их закавычивать, я предпочёл бы использовать «|», который при создании никак не может быть задействован.
Last edited by Taciturn on Mon 23 Jan, 2023 14:02, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10859
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Я думаю, это можно решить скриптом, устроенным наподобие FIN (Fix Incorrect Names).
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

HaRT, это - первое, что приходит в голову. НО!
  1. Вот как сделать, чтобы можно было указать такое: qqq,www,eee|111;222;333 (т.е. создать 2 папки: qqq,www,eee и 111;222;333? Как это реализовать скриптом, не используя вызов win.CreateDir? Мне в голову приходит только написать ивент на закрытие этого диалога, заменить результат на отказ и создать папки самому. Но это как-то пер-анально…
  2. На самом деле интерпретация разделителей (",", ";") - часть имени или разделитель - зависит от чекбокса Process multiple names; я не представляю себе, как это учитывать. Ну, опять же кроме как описано в конце п.1 .
User avatar
HaRT
Moderator
Posts: 10859
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Вообще-то я имел в виду, что скрипт, обнаружив разделитель |, будет заменять его на ;, закавычивая разделяемые имена.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

HaRT wrote: Mon 23 Jan, 2023 21:19 закавычивая разделяемые имена
Про кавычки я не знал. Легко сделать.
2useven10
Posts: 5226
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 314 times

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

Post by 2useven10 »

Самое сложное найти аналогию с FIN. Я не справился.
Last edited by 2useven10 on Mon 23 Jan, 2023 22:09, edited 2 times in total.
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

2useven10, я думаю, HaRT подразумевал замену строка "на лету" по факту ввода «|». Но мне кажется, что правильнее будет повесить ивент на закрытие диалога
User avatar
HaRT
Moderator
Posts: 10859
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

2useven10 wrote: Mon 23 Jan, 2023 22:07 Самое сложное найти аналогию с FIN
Я имел в виду, конечно же, FIN Alt.. Прошу прощения за некоторую небрежность высказывания.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

HaRT wrote: Mon 23 Jan, 2023 17:35 Я думаю, это можно решить скриптом
buniak_a_h wrote: Mon 23 Jan, 2023 21:58 Легко сделать
Вот решает задачу (без настройки: разделитель - |)
Из известных недостатков - включает флаг [x] Process multiple names при наличии разделителя |, т.е. имеет побочный эффект.
Last edited by buniak_a_h on Tue 24 Jan, 2023 10:45, edited 3 times in total.
User avatar
Taciturn
Posts: 603
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

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

Post by Taciturn »

buniak_a_h, спасибо, но что-то у меня не работает. Т.е. «Test1|Test2» создаёт два каталога, но «Test1;Test2» тоже создаёт, а ведь суть замены как раз в том, чтобы не нужно было вписывать имена в кавычки при использовании в них «;» и «,» или вручную снимать «Обрабатывать несколько имён папок».
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

Taciturn, я не очень понял… «тоже создаёт» - что? Два каталога? Оставлено для совместимости, тем более что обходится легко (окавычиванием). Допишите в конец палочку. А, понял! Уберите из скрипта проверку Txt:find"|" (стр.15), но тогда с созданием папок "по-старому" придётся распрощаться
Я задачу по-другому понял. Именно интерпретировать "|" как разделитель. А при отсутствии оного работать как раньше. А надо было чтоб запятуха [с точкой] не воспринималась как разделители независимо от флажка.
User avatar
Taciturn
Posts: 603
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
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

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

Post by Smitis »

А ещё бы ещё решить с масками файлов, где те же разделители, но символ | задействован совсем для других целей...
Разум когда-нибудь победит.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

В far2l эта проблема значительно острее, поскольку в линуксах практически любой символ, кроме / и бинарного нуля является валидным в именах файлов. Например | ? * > < " это всё валидные символы.
User avatar
Taciturn
Posts: 603
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

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

Post by Taciturn »

Smitis, для масок файлов можно использовать \ вместо запятой. В именах файла такого символа быть не может. Хотя, конечно, получается не очень наглядно.
Post Reply

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