Нужна кнопка создания каталога

Модератор: motyara

ARXEO
Сообщения: 17
Зарегистрирован: Пн янв 18, 2010 8:29 pm

Нужна кнопка создания каталога

Сообщение ARXEO » Вт авг 13, 2013 8:47 pm

Всем доброго дня! Подсадив на работе людей на Commander вынужден отвечать на их вопросы, но тут задали такой, что не знаю что и отвечать. Суть дела в следующем: в соседнем отделе людям требуется ежедневно создавать папки, с наименованием %текущая_дата%, например "13.08.2013" или "2013.08.13". Делать это нужно часто и они хотят хоть чуть-чуть автоматизировать свою работу. Вот собственно и вопрос: а есть ли такая возможность - нажал кнопку и в активной панели автоматически создалась такая папка. А если такой кнопки нет, то можно ли её написать?
Спасибо!

Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3131
Зарегистрирован: Пт окт 12, 2007 9:00 pm
Контактная информация:

Сообщение Max Diesel » Ср авг 14, 2013 5:46 pm

Должен признать, что предложение весьма рациональное, однако вариант с созданием кнопки более проблемный, чем использование масок переименования в диалоге создания каталога. Со следующего билда добавлю такую возможность, после этого для создания каталога с именем по текущей дате и времени ("2013.08.14-20-43-08") необходимо будет использовать маску "[YYYY].[M].[D]-[h]-[m]-[s]":
маски переименования.png
В связи с тем фактом, что диалог сохраняет историю создаваемых каталогов, маска будет сохранена и не нужно будет ее откуда-либо копировать каждый раз.

Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

Сообщение Qwertiy » Ср авг 14, 2013 6:56 pm

Max Diesel писал(а):необходимо будет использовать маску "[YYYY].[M].[D]-[h]-[m]-[s]"
Плохой вариант, поскольку подобная конструкция является валидным именем.
Лучше будет использовать нечто, чего не может быть в имени файла, например, двоеточия, как в Métamorphose. Но мне больше нравится вариант:

Код: Выделить всё

[:YYYY].[:M].[:D]-[:h]-[:m]-[:s]
поскольку остаётся преимущество визуальной группировки скобками и последовательность [: является невозможной в имени (причём вместе с путём, т. к. диск не должен иметь букву [ ;))

B ещё небольшое предложение по усовершенствованию - писать формат полностью, а не частями и передавать его в форматирование даты:

Код: Выделить всё

[:yyyy_MM_dd HH_mm_ss]
[:d MMM yyyy h-m-s tt]
естественно, с возможностью указать текст за пределами маски.

Кстати, а что с этим будет в плане локализации?
И да, куда-нибудь надо приделать превью имени :)

Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3131
Зарегистрирован: Пт окт 12, 2007 9:00 pm
Контактная информация:

Сообщение Max Diesel » Пт авг 16, 2013 11:52 am

Qwertiy писал(а):
Max Diesel писал(а):необходимо будет использовать маску "[YYYY].[M].[D]-[h]-[m]-[s]"
Плохой вариант, поскольку подобная конструкция является валидным именем.
Лучше будет использовать нечто, чего не может быть в имени файла, например, двоеточия, как в Métamorphose. Но мне больше нравится вариант:

Код: Выделить всё

[:YYYY].[:M].[:D]-[:h]-[:m]-[:s]
поскольку остаётся преимущество визуальной группировки скобками и последовательность [: является невозможной в имени (причём вместе с путём, т. к. диск не должен иметь букву [ ;))
Согласен с утверждением, что конструкция может быть именем каталога, однако лично мне ни разу не потребовалось создать каталог с таким странным именем, полагаю большинству это тоже не понадобится. Добавление двоеточия мне не нравится потому, что тогда будет отличие формата от маски переименования. С учетом этого я из двух зол выбираю меньшее и оставляю использование маски переименования.
Qwertiy писал(а):B ещё небольшое предложение по усовершенствованию - писать формат полностью, а не частями и передавать его в форматирование даты:

Код: Выделить всё

[:yyyy_MM_dd HH_mm_ss]
[:d MMM yyyy h-m-s tt]
естественно, с возможностью указать текст за пределами маски.

Кстати, а что с этим будет в плане локализации?
Написание формата в "усовершенствованном" виде опять-таки создает отличие с форматом маски переименования из окна группового переименования.
Qwertiy писал(а):И да, куда-нибудь надо приделать превью имени :)
Теоретически это было бы рационально, однако функция явно маловостребованная, поэтому добавление дополнительного поля (в котором бы отображался результат введенной маски) и добавление ComboBox'а для выбора желаемой маски является наверное все-таки излишним.

Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

Сообщение Qwertiy » Пт авг 16, 2013 12:20 pm

Max Diesel писал(а):Согласен с утверждением, что конструкция может быть именем каталога, однако лично мне ни разу не потребовалось создать каталог с таким странным именем, полагаю большинству это тоже не понадобится.
А если просто [M]?
Max Diesel писал(а):Добавление двоеточия мне не нравится потому, что тогда будет отличие формата от маски переименования. С учетом этого я из двух зол выбираю меньшее и оставляю использование маски переименования.
Написание формата в "усовершенствованном" виде опять-таки создает отличие с форматом маски переименования из окна группового переименования.
Во-первых, что плохого, если будет по-разному? А во-вторых, а что мешает добавить такую возможность в переименование?
Max Diesel писал(а):Теоретически это было бы рационально, однако функция явно маловостребованная, поэтому добавление дополнительного поля (в котором бы отображался результат введенной маски) и добавление ComboBox'а для выбора желаемой маски является наверное все-таки излишним.
Я про комбобокс ничего и не говорил. Будем считать, что все и так знают формат написания даты, раз пользуются этой возможностью ;)
А под локализацией я имел в виду возможность вместо [:yyyy_MM_dd HH_mm_ss] написать [:гггг_ММ_дд ЧЧ_мм_сс].

Кстати, по поводу невостребованности функции. Во-первых, это вопрос спорный. Во-вторых, если она действительно маловостребованная, то ещё хуже и менее ожидаемо, что корректные имена станут превращаться в непонятные числа ;)

avmaksimov
Сообщения: 357
Зарегистрирован: Чт ноя 08, 2007 9:29 am
Откуда: Москва
Контактная информация:

Re: Нужна кнопка создания каталога

Сообщение avmaksimov » Вс авг 18, 2013 3:23 pm

Именно такую маску может и никто не захочет использовать, но вот, если мне захочется создать каталог с именем "Folder_[M]", получается, у меня не будет такой возможности, т.к. подставится месяц?

ИМХО, это столь редкая задача и решается гораздо проще любым скриптовым языком, даже cmd в винде. Ничего не мешает создать иконку, указывающую на .bat файл.

Ну либо должна быть опция (что использовать маски) и превью все-таки...
С уважением, Андрей.

Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

Сообщение Qwertiy » Пн авг 19, 2013 10:24 am

avmaksimov писал(а):Именно такую маску может и никто не захочет использовать, но вот, если мне захочется создать каталог с именем "Folder_[M]", получается, у меня не будет такой возможности, т.к. подставится месяц?
Ну либо должна быть опция (что использовать маски) и превью все-таки...
Ура, нас уже двое :) Двоеточие избавляет от опции, т. к. Folder_[:M] создать точно не захочется (а если и захочется, то всё равно не получится), по крайней мере в Windows (в Линуксах вроде разрешено двоеточие).
avmaksimov писал(а):ИМХО, это столь редкая задача и решается гораздо проще любым скриптовым языком, даже cmd в винде. Ничего не мешает создать иконку, указывающую на .bat файл.
Форматирование даты в bat? Что, правда?

avmaksimov
Сообщения: 357
Зарегистрирован: Чт ноя 08, 2007 9:29 am
Откуда: Москва
Контактная информация:

Re:

Сообщение avmaksimov » Пн авг 19, 2013 11:14 am

Qwertiy писал(а):
avmaksimov писал(а):ИМХО, это столь редкая задача и решается гораздо проще любым скриптовым языком, даже cmd в винде. Ничего не мешает создать иконку, указывающую на .bat файл.
Форматирование даты в bat? Что, правда?
Сам недавно узнал. Например, вот пример: http://www.windowsfaq.ru/content/view/654/45/
Например,

Код: Выделить всё

mkdir %date%
С уважением, Андрей.

Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

Сообщение Qwertiy » Пн авг 19, 2013 12:17 pm

avmaksimov писал(а):Сам недавно узнал. Например, вот пример: http://www.windowsfaq.ru/content/view/654/45/
Да, полезная штука :)
Но возни с форматом всё-таки многовато ;)

avmaksimov
Сообщения: 357
Зарегистрирован: Чт ноя 08, 2007 9:29 am
Откуда: Москва
Контактная информация:

Re:

Сообщение avmaksimov » Пн авг 19, 2013 1:32 pm

Qwertiy писал(а):
avmaksimov писал(а):Сам недавно узнал. Например, вот пример: http://www.windowsfaq.ru/content/view/654/45/
Да, полезная штука :)
Но возни с форматом всё-таки многовато ;)
Ну тут вопрос: возится ли Max Diesel с этим форматом вместо создания более нужного функционала либо автору топика.... Так можно под каждую задачу просить функцию... Мне вот нужна кнопка "Make me happy" :D
С уважением, Андрей.

Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

Сообщение Qwertiy » Пн авг 19, 2013 1:52 pm

avmaksimov писал(а):Ну тут вопрос: возиться ли Max Diesel с этим форматом вместо создания более нужного функционала либо автору топика....
Я не знаю, насколько сложна реализация этой возможности в C++ Builder'е, но предполагаю, что этот вопрос вполне может решаться парой строчек кода типа

Код: Выделить всё

Dim DateToUse As Date = Now()
Name = Regex.Replace(Name, "\[:(.*?)\]", Function(M As Match)
  Try
    Return DateToUse.ToString(M.Groups(1))
  Catch Ex As FormatException
    Return "[:ERROR:]"
  End Try
End Function)
В итоге я потратил одну минуту, чтобы написать код, который должен подставлять дату в практически* любом формате с использованием текущей локализации для результата (но не для входной строки шаблона). Даже если я посадил в ней пару тупых багов, на её отладку и исправление уйдёт не больше 5 минут, т. к. тут всё достаточно очевидно и легко.

* ну да, не прокатит написать [:yyyy-'[]'-MM], но это вполне заменяемо на [:yyyy]-[]-[:MM] руками пишущего ;)
avmaksimov писал(а):Так можно под каждую задачу просить функцию...
Ну, мне бы эта функция тоже пригодилась ;)

Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

:(

Сообщение Qwertiy » Ср сен 25, 2013 2:38 pm

Билд 929 - всё-таки параметры в квадратных скобках :(

avmaksimov
Сообщения: 357
Зарегистрирован: Чт ноя 08, 2007 9:29 am
Откуда: Москва
Контактная информация:

Re: :(

Сообщение avmaksimov » Ср сен 25, 2013 6:15 pm

Qwertiy писал(а):Билд 929 - всё-таки параметры в квадратных скобках :(
Как узнали? Где-то это написано? Я думал, в диалоге создания каталога будет...
С уважением, Андрей.

Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3131
Зарегистрирован: Пт окт 12, 2007 9:00 pm
Контактная информация:

Сообщение Max Diesel » Ср сен 25, 2013 6:24 pm

Функция пока что "недокументированная", кто знает как использовать, тот может использовать. Официальный ее вариант (с кнопками) предположительно будет лишь со следующей версии.

Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

Сообщение Qwertiy » Ср сен 25, 2013 10:28 pm

Создал опрос. Прошу всех участвовавших в обсуждении проголосовать.

Ответить