Страница 1 из 2
Нужна кнопка создания каталога
Добавлено: Вт авг 13, 2013 8:47 pm
ARXEO
Всем доброго дня! Подсадив на работе людей на Commander вынужден отвечать на их вопросы, но тут задали такой, что не знаю что и отвечать. Суть дела в следующем: в соседнем отделе людям требуется ежедневно создавать папки, с наименованием %текущая_дата%, например "13.08.2013" или "2013.08.13". Делать это нужно часто и они хотят хоть чуть-чуть автоматизировать свою работу. Вот собственно и вопрос: а есть ли такая возможность - нажал кнопку и в активной панели автоматически создалась такая папка. А если такой кнопки нет, то можно ли её написать?
Спасибо!
Добавлено: Ср авг 14, 2013 5:46 pm
Max Diesel
Должен признать, что предложение весьма рациональное, однако вариант с созданием кнопки более проблемный, чем использование масок переименования в диалоге создания каталога. Со следующего билда добавлю такую возможность, после этого для создания каталога с именем по текущей дате и времени ("2013.08.14-20-43-08") необходимо будет использовать маску "[YYYY].[M].[D]-[h]-[m]-[s]":
В связи с тем фактом, что диалог сохраняет историю создаваемых каталогов, маска будет сохранена и не нужно будет ее откуда-либо копировать каждый раз.
Добавлено: Ср авг 14, 2013 6:56 pm
Qwertiy
Max Diesel писал(а):необходимо будет использовать маску "[YYYY].[M].[D]-[h]-[m]-[s]"
Плохой вариант, поскольку подобная конструкция является валидным именем.
Лучше будет использовать нечто, чего не может быть в имени файла, например, двоеточия, как в Métamorphose. Но мне больше нравится вариант:
поскольку остаётся преимущество визуальной группировки скобками и последовательность
[: является невозможной в имени (причём вместе с путём, т. к. диск не должен иметь букву
[ )
B ещё небольшое предложение по усовершенствованию - писать формат полностью, а не частями и передавать его в форматирование даты:
Код: Выделить всё
[:yyyy_MM_dd HH_mm_ss]
[:d MMM yyyy h-m-s tt]
естественно, с возможностью указать текст за пределами маски.
Кстати, а что с этим будет в плане локализации?
И да, куда-нибудь надо приделать превью имени
Добавлено: Пт авг 16, 2013 11:52 am
Max Diesel
Qwertiy писал(а):Max Diesel писал(а):необходимо будет использовать маску "[YYYY].[M].[D]-[h]-[m]-[s]"
Плохой вариант, поскольку подобная конструкция является валидным именем.
Лучше будет использовать нечто, чего не может быть в имени файла, например, двоеточия, как в Métamorphose. Но мне больше нравится вариант:
поскольку остаётся преимущество визуальной группировки скобками и последовательность
[: является невозможной в имени (причём вместе с путём, т. к. диск не должен иметь букву
[ )
Согласен с утверждением, что конструкция может быть именем каталога, однако лично мне ни разу не потребовалось создать каталог с таким странным именем, полагаю большинству это тоже не понадобится. Добавление двоеточия мне не нравится потому, что тогда будет отличие формата от маски переименования. С учетом этого я из двух зол выбираю меньшее и оставляю использование маски переименования.
Qwertiy писал(а):B ещё небольшое предложение по усовершенствованию - писать формат полностью, а не частями и передавать его в форматирование даты:
Код: Выделить всё
[:yyyy_MM_dd HH_mm_ss]
[:d MMM yyyy h-m-s tt]
естественно, с возможностью указать текст за пределами маски.
Кстати, а что с этим будет в плане локализации?
Написание формата в "усовершенствованном" виде опять-таки создает отличие с форматом маски переименования из окна группового переименования.
Qwertiy писал(а):И да, куда-нибудь надо приделать превью имени
Теоретически это было бы рационально, однако функция явно маловостребованная, поэтому добавление дополнительного поля (в котором бы отображался результат введенной маски) и добавление ComboBox'а для выбора желаемой маски является наверное все-таки излишним.
Добавлено: Пт авг 16, 2013 12:20 pm
Qwertiy
Max Diesel писал(а):Согласен с утверждением, что конструкция может быть именем каталога, однако лично мне ни разу не потребовалось создать каталог с таким странным именем, полагаю большинству это тоже не понадобится.
А если просто
[M]?
Max Diesel писал(а):Добавление двоеточия мне не нравится потому, что тогда будет отличие формата от маски переименования. С учетом этого я из двух зол выбираю меньшее и оставляю использование маски переименования.
Написание формата в "усовершенствованном" виде опять-таки создает отличие с форматом маски переименования из окна группового переименования.
Во-первых, что плохого, если будет по-разному? А во-вторых, а что мешает добавить такую возможность в переименование?
Max Diesel писал(а):Теоретически это было бы рационально, однако функция явно маловостребованная, поэтому добавление дополнительного поля (в котором бы отображался результат введенной маски) и добавление ComboBox'а для выбора желаемой маски является наверное все-таки излишним.
Я про комбобокс ничего и не говорил. Будем считать, что все и так знают формат написания даты, раз пользуются этой возможностью
А под локализацией я имел в виду возможность вместо
[:yyyy_MM_dd HH_mm_ss] написать
[:гггг_ММ_дд ЧЧ_мм_сс].
Кстати, по поводу невостребованности функции. Во-первых, это вопрос спорный. Во-вторых, если она действительно маловостребованная, то ещё хуже и менее ожидаемо, что корректные имена станут превращаться в непонятные числа
Re: Нужна кнопка создания каталога
Добавлено: Вс авг 18, 2013 3:23 pm
avmaksimov
Именно такую маску может и никто не захочет использовать, но вот, если мне захочется создать каталог с именем "Folder_[M]", получается, у меня не будет такой возможности, т.к. подставится месяц?
ИМХО, это столь редкая задача и решается гораздо проще любым скриптовым языком, даже cmd в винде. Ничего не мешает создать иконку, указывающую на .bat файл.
Ну либо должна быть опция (что использовать маски) и превью все-таки...
Добавлено: Пн авг 19, 2013 10:24 am
Qwertiy
avmaksimov писал(а):Именно такую маску может и никто не захочет использовать, но вот, если мне захочется создать каталог с именем "Folder_[M]", получается, у меня не будет такой возможности, т.к. подставится месяц?
Ну либо должна быть опция (что использовать маски) и превью все-таки...
Ура, нас уже двое
Двоеточие избавляет от опции, т. к. Folder_[:M] создать точно не захочется (а если и захочется, то всё равно не получится), по крайней мере в Windows (в Линуксах вроде разрешено двоеточие).
avmaksimov писал(а):ИМХО, это столь редкая задача и решается гораздо проще любым скриптовым языком, даже cmd в винде. Ничего не мешает создать иконку, указывающую на .bat файл.
Форматирование даты в bat? Что, правда?
Re:
Добавлено: Пн авг 19, 2013 11:14 am
avmaksimov
Qwertiy писал(а):avmaksimov писал(а):ИМХО, это столь редкая задача и решается гораздо проще любым скриптовым языком, даже cmd в винде. Ничего не мешает создать иконку, указывающую на .bat файл.
Форматирование даты в bat? Что, правда?
Сам недавно узнал. Например, вот пример:
http://www.windowsfaq.ru/content/view/654/45/
Например,
Добавлено: Пн авг 19, 2013 12:17 pm
Qwertiy
Да, полезная штука
Но возни с форматом всё-таки многовато
Re:
Добавлено: Пн авг 19, 2013 1:32 pm
avmaksimov
Qwertiy писал(а):
Да, полезная штука
Но возни с форматом всё-таки многовато
Ну тут вопрос: возится ли Max Diesel с этим форматом вместо создания более нужного функционала либо автору топика.... Так можно под каждую задачу просить функцию... Мне вот нужна кнопка "Make me happy"
Добавлено: Пн авг 19, 2013 1:52 pm
Qwertiy
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 писал(а):Так можно под каждую задачу просить функцию...
Ну, мне бы эта функция тоже пригодилась
:(
Добавлено: Ср сен 25, 2013 2:38 pm
Qwertiy
Билд 929 - всё-таки параметры в квадратных скобках
Re: :(
Добавлено: Ср сен 25, 2013 6:15 pm
avmaksimov
Qwertiy писал(а):Билд 929 - всё-таки параметры в квадратных скобках
Как узнали? Где-то это написано? Я думал, в диалоге создания каталога будет...
Добавлено: Ср сен 25, 2013 6:24 pm
Max Diesel
Функция пока что "недокументированная", кто знает как использовать, тот может использовать. Официальный ее вариант (с кнопками) предположительно будет лишь со следующей версии.
Добавлено: Ср сен 25, 2013 10:28 pm
Qwertiy
Создал
опрос. Прошу всех участвовавших в обсуждении проголосовать.