Schöck
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как автоматически добавлять к имени файла дату и время его создания при сохранении

Как автоматически добавлять к имени файла дату и время его создания при сохранении

Ответ
Поиск в этой теме
Непрочитано 03.07.2012, 17:05 #1
Как автоматически добавлять к имени файла дату и время его создания при сохранении
Denis Ch
 
Сопровождение проектов, внутренний технадзор
 
Санкт-Петербург
Регистрация: 05.06.2012
Сообщений: 46

Всем привет.
На работе столкнулся с проблемой контроля выпуска проектной документации. А именно проблема с датами когда и в какое время был создан и сохранен тот или иной чертеж. Подскажите пожалуйста можно ли написать такой лисп или макрос который бы автоматически добавлял к имени файла дату и время его создания в момент сохранения. Ну и конечно нужно чтобы имя не менялось при простом открытии файла для просмотра. Подскажите пожалуйста как это реализовать? И вообще возможно ли это?
Просмотров: 17428
 
Непрочитано 03.07.2012, 17:32
#2
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,912


У меня постоянно левая рука на Ctrl+S. К концу дня у меня диск переполнится dwg файлами.
Nike на форуме  
 
Непрочитано 03.07.2012, 17:32
#3
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


тынц.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 03.07.2012, 17:47
1 | #4
Аshаs-ка

проектировсчик
 
Регистрация: 06.01.2006
Москва
Сообщений: 1,907


В углу чертежа поле с соответствующим значением. date - time/ Last saved
Вложения
Тип файла: dwg
DWG 2007
Дин рамка А1-А4 бш.dwg (148.9 Кб, 3792 просмотров)
Аshаs-ка вне форума  
 
Непрочитано 03.07.2012, 17:50
#5
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Аshаs-ка Посмотреть сообщение
В углу чертежа поле с соответствующим значением. date - time/ Last saved
и каким боком это относится к тому, что написал топикстартер:
Цитата:
лисп или макрос который бы автоматически добавлял к имени файла дату и время его создания в момент сохранения.
?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 03.07.2012, 17:58
#6
dzfn

Кабинетный работник
 
Регистрация: 29.10.2009
Архангельск
Сообщений: 86
<phrase 1=


а под это дело никак не припахать систему контроля версий что-то типа cvs и прочего?
И если я правильно понимаю, то для этой цели служит Autodesk Vault

Последний раз редактировалось dzfn, 03.07.2012 в 18:07.
dzfn вне форума  
 
Непрочитано 03.07.2012, 18:01
1 | #7
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от dzfn Посмотреть сообщение
а под это дело никак не припахать систему контроля версий что-то типа cvs и прочего?
тогда уж лучше git - прост, удобен, быстр, надёжен, бесплатен, кроссплатформен. Я пробовал, мне понравился.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 03.07.2012, 18:04
#8
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от hwd Посмотреть сообщение
и каким боком это относится к тому, что написал топикстартер:
Ну, дык
Цитата:
xxx:
Заказ на сайт, который я явно никогда не забуду. Сайт-визитка из 1 страницы. Фраза заказчика: "я заплачу 50 000, только должно быть серое, красное и чтоб вставляло!" просто убила
gomer вне форума  
 
Непрочитано 03.07.2012, 18:16
#9
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,785
<phrase 1=


Цитата:
Сообщение от Denis Ch Посмотреть сообщение
На работе столкнулся с проблемой контроля выпуска проектной документации. А именно проблема с датами когда и в какое время был создан и сохранен тот или иной чертеж.
Всё это (Дата/Время) делает операционная система, ну или система Документооборота проследит.
Цитата:
Подскажите пожалуйста можно ли написать такой лисп или макрос который бы автоматически добавлял к имени файла дату и время его создания в момент сохранения.
Программированием можно сделать всё.
Цитата:
Ну и конечно нужно чтобы имя не менялось при простом открытии файла для просмотра.
Малейшее изменение, внесенное в файл сторонней программой (я думаю мало кто работает с "чистым" Автокадом), потребует сохранение.
Цитата:
И вообще возможно ли это?
Из моих ответов следует - "А нужно ли это вообще в запрашиваемом виде?"
Сохранять надо обычно какие-то промежуточные этапы, так сказать "контрольные точки"
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 03.07.2012, 18:30
#10
Denis Ch

Сопровождение проектов, внутренний технадзор
 
Регистрация: 05.06.2012
Санкт-Петербург
Сообщений: 46


Цитата:
Сообщение от Alan Посмотреть сообщение
Всё это (Дата/Время) делает операционная система, ну или система Документооборота проследит.

Программированием можно сделать всё.

Малейшее изменение, внесенное в файл сторонней программой (я думаю мало кто работает с "чистым" Автокадом), потребует сохранение.

Из моих ответов следует - "А нужно ли это вообще в запрашиваемом виде?"
Сохранять надо обычно какие-то промежуточные этапы, так сказать "контрольные точки"
Возможно я не совсем правильно сформулировал вопрос. Проблема эта возникла из-за того, что проектировщики наделали разных версий чертежей и передали их на производство. Соответственно при передаче на производство дата изменения файла поменялась на дату передачи документации по почте. Нужно, чтобы к имени чертежа добавлялась дата его сохранения на компьютере создателя. А вот в каком виде это будет реализовано, лисп или макрос я сказать не готов, так как с программированием не очень знаком, поэтому сюда и обратился. Буду очень признателен за возможные реализации решения проблемы.
Denis Ch вне форума  
 
Непрочитано 03.07.2012, 18:39
1 | #11
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,912


Цитата:
Сообщение от Denis Ch Посмотреть сообщение
Возможно я не совсем правильно сформулировал вопрос. Проблема эта возникла из-за того, что проектировщики наделали разных версий чертежей и передали их на производство. Соответственно при передаче на производство дата изменения файла поменялась на дату передачи документации по почте. Нужно, чтобы к имени чертежа добавлялась дата его сохранения на компьютере создателя. А вот в каком виде это будет реализовано, лисп или макрос я сказать не готов, так как с программированием не очень знаком, поэтому сюда и обратился. Буду очень признателен за возможные реализации решения проблемы.
Ну тогда тебе точно нужно не имя файла, а текст с этими сведениями в чертеже. Поддерживаю #4
Наш пример:
Nike на форуме  
 
Автор темы   Непрочитано 03.07.2012, 18:46
#12
Denis Ch

Сопровождение проектов, внутренний технадзор
 
Регистрация: 05.06.2012
Санкт-Петербург
Сообщений: 46


Цитата:
Сообщение от Nike Посмотреть сообщение
Ну тогда тебе точно нужно не имя файла, а текст с этими сведениями в чертеже. Поддерживаю #4
Наш пример:
Как вариант, возможно. Но когда счет чертежей идет на сотни и "весят" они довольно прилично, открывать каждый чертеж и смотреть в нем информацию о сохранении не вариант. Слишком это сложно. А вот когда в названии файла присутствует дата, то можно увидеть по каждому разделу не открывая самого файла чертежа когда он был создан.
Denis Ch вне форума  
 
Непрочитано 03.07.2012, 18:47
#13
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,912


Сортируй по дате и все увидишь, что раньше, что позже..
Nike на форуме  
 
Автор темы   Непрочитано 03.07.2012, 18:51
#14
Denis Ch

Сопровождение проектов, внутренний технадзор
 
Регистрация: 05.06.2012
Санкт-Петербург
Сообщений: 46


Цитата:
Сообщение от Nike Посмотреть сообщение
Сортируй по дате и все увидишь, что раньше, что позже..
Опять не то.Конкретная ситуация: начертили проект сохранили его. Собрали все чертежи в архив и отправили по электронной почте. Получатель разархивировал полученную информацию и все даты изменения чертежей поменялись на текущую. А вот если это будет в названии, то ничего не поменяется и будет понятно, что и когда создано.
Denis Ch вне форума  
 
Непрочитано 03.07.2012, 18:53
#15
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,912


Ну когда собираете архив - в его имя и вбейте дату
Nike на форуме  
 
Автор темы   Непрочитано 03.07.2012, 18:56
#16
Denis Ch

Сопровождение проектов, внутренний технадзор
 
Регистрация: 05.06.2012
Санкт-Петербург
Сообщений: 46


Цитата:
Сообщение от Nike Посмотреть сообщение
Ну когда собираете архив - в его имя и вбейте дату
Не могу не согласиться. Но ведь забывают постоянно это делать. Пресловутый человеческий фактор, побороть который можно только автоматизацией процессов.
Denis Ch вне форума  
 
Непрочитано 03.07.2012, 18:57
1 | #17
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,377
Отправить сообщение для ssn с помощью Skype™


я на работе просто поступаю.
когда в файле происходят ключевые изменения (да и не обязательно ключевые, а даже и просто), я всегда сохранаю файл с форматом имени:
ГОД. МЕСЯЦ. ЧИСЛО. Название файла.
и все. главно имя особо не менять в процессе работы.
а в рабочей папке есть папочка ОТКАТ куда складываю предыдущие версии. по хорошему, по окончании проекта эту папочку можно грохнуть.
автоматизации правда ноль, но своих в конторе всех заставил так делать. ибо потом среди таких файлов:
распоследний, самый последний, новый, 111, новее правда не разобрать нифига.

слышал есть программы которые сравнивают чертежи и показывают отличия. но не пробовал.
ssn вне форума  
 
Автор темы   Непрочитано 03.07.2012, 19:03
#18
Denis Ch

Сопровождение проектов, внутренний технадзор
 
Регистрация: 05.06.2012
Санкт-Петербург
Сообщений: 46


Цитата:
Сообщение от ssn Посмотреть сообщение
я на работе просто поступаю.
когда в файле происходят ключевые изменения (да и не обязательно ключевые, а даже и просто), я всегда сохранаю файл с форматом имени:
ГОД. МЕСЯЦ. ЧИСЛО. Название файла.
и все. главно имя особо не менять в процессе работы.
а в рабочей папке есть папочка ОТКАТ куда складываю предыдущие версии. по хорошему, по окончании проекта эту папочку можно грохнуть.
автоматизации правда ноль, но своих в конторе всех заставил так делать. ибо потом среди таких файлов:
распоследний, самый последний, новый, 111, новее правда не разобрать нифига.

слышал есть программы которые сравнивают чертежи и показывают отличия. но не пробовал.
Вот прям абсолютно в точку. Особенно раздражает новый последний самый новый. Пробую заставить но процесс не идет совсем, то забудут, то ещё что-нибудь.А бегать и каждому говорить далай именно так, причем постоянно, просто сил никаких не хватит. Инструментов финансового наказания пока не имею, поэтому решил обратиться к вопросу автоматизации данного процесса.
Denis Ch вне форума  
 
Непрочитано 03.07.2012, 19:29
#19
dzfn

Кабинетный работник
 
Регистрация: 29.10.2009
Архангельск
Сообщений: 86
<phrase 1=


Сдается мне, решаем не проблему, а ее следствие.
Цитата:
Сообщение от Denis Ch Посмотреть сообщение
Проблема эта возникла из-за того, что проектировщики наделали разных версий чертежей и передали их на производство.
- что же вы не контролируете документооборот, как можно, чтоб все кому не лень передавали в производство?
еще одна мысль о чем то вроде ЕЦП гласящей "в производство".
dzfn вне форума  
 
Непрочитано 03.07.2012, 19:31
#20
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Denis Ch Посмотреть сообщение
Опять не то.Конкретная ситуация: начертили проект сохранили его. Собрали все чертежи в архив и отправили по электронной почте. Получатель разархивировал полученную информацию и все даты изменения чертежей поменялись на текущую. А вот если это будет в названии, то ничего не поменяется и будет понятно, что и когда создано.
А вот если внимательней посмотреть, то проблема высосана из пальца:



Смотри дату изменения, вместо даты создания - и будет тебе счастье. А если есть необходимость в гарантии того, что твои чертежи не были несанкционированно изменены - подписывай их средствами AutoCAD.
Миниатюры
Нажмите на изображение для увеличения
Название: 03-07-2012 19-26-27.png
Просмотров: 2962
Размер:	40.5 Кб
ID:	83233  
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 03.07.2012, 21:12
#21
Denis Ch

Сопровождение проектов, внутренний технадзор
 
Регистрация: 05.06.2012
Санкт-Петербург
Сообщений: 46


Цитата:
Сообщение от hwd Посмотреть сообщение
А вот если внимательней посмотреть, то проблема высосана из пальца:



Смотри дату изменения, вместо даты создания - и будет тебе счастье. А если есть необходимость в гарантии того, что твои чертежи не были несанкционированно изменены - подписывай их средствами AutoCAD.
Дата изменения и дата создания это все понятно.Но опять же для каждого файла вызывать свойства, а потом их записывать или запоминать, по моему тоже не совсем вариант особенно если файлов достаточно много. А проблема из пальца не высосана она реально есть. И я думаю меня поймут люди имеющие прямое отношению к строительной площадке. Опять же конкретная ситуация: на площадку передан комплект документации в бумажном виде, инженеры для удобства просят проектировщиков выслать тоже самое в электронном виде. И кто-то в этой цепочке ошибается(очень реальная для производства ситуация) и обнаруживают, что есть несоответствия в бумажных и электронных версиях. А когда будет стоять дата то и подобные ошибки будут сведены к минимуму.
Цитата:
Сообщение от dzfn Посмотреть сообщение
Сдается мне, решаем не проблему, а ее следствие.
- что же вы не контролируете документооборот, как можно, чтоб все кому не лень передавали в производство?
еще одна мысль о чем то вроде ЕЦП гласящей "в производство".
Есть проблема и есть следствие. Я не критикую никого и не прошу критиковать меня.Описывать и разъяснять структурную организацию и свои функции я не буду, не для этого тема создана. Я просто прошу помочь в реализации идеи, которая на мой взгляд позволит улучшить сложившуюся ситуацию.
Denis Ch вне форума  
 
Непрочитано 03.07.2012, 21:22
1 | #22
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Denis Ch Посмотреть сообщение
И кто-то в этой цепочке ошибается
Это проблемы организационного характера.
Тот кто печатает, тот и электронную версию должен отправлять на стройку, вместе с распечатанной версией. Кроме того - в свободном доступе сотрудникам должна быть только одна версия проекта, дабы не создавать потенциальной возможности возникновения указанных проблем, мол распечатали одну версию, а в электронном виде передали другую. Документацию на стройку передавать сразу бумага + электронная версия. Кроме того - наличие электронной подписи в чертеже, гарантирует то, что на стройке чертёж не был изменён.

На полях рамки листа можно ставить дату печати (с помощью Field). В случае необходимости всегда можно сравнить эту дату с датой изменения файла (скрин выше). Если дата печати (на полях бумажной версии) более поздняя, чем дата изменения - значит содержимое листа соответствует последней версии чертежа. Этот способ вполне годится для того, чтобы проверить конкретный, интересующий в данный момент лист чертежа (ну или пару-тройку листов).

Однако корень обозначенной автором топика проблемы лежит в плохой организации процесса хранения и передачи документации (имхо).

Цитата:
Есть проблема и есть следствие. Я не критикую никого и не прошу критиковать меня.Описывать и разъяснять структурную организацию и свои функции я не буду, не для этого тема создана. Я просто прошу помочь в реализации идеи, которая на мой взгляд позволит улучшить сложившуюся ситуацию.
Однако проблема именно в "структурной организации", так что стоит над этим задуматься, дабы не изобретать велосипед под каждую подобного рода ситуацию, обусловленную непродуманностью.

UPD
Кроме того, сгенерировать текстовый файл с перечнем имён файлов и датами их последнего изменения - это не сложно. Распечатать этот листик и проверить ваши бумажные версии - тоже труда не составит.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 03.07.2012 в 21:42.
hwd вне форума  
 
Автор темы   Непрочитано 03.07.2012, 21:43
#23
Denis Ch

Сопровождение проектов, внутренний технадзор
 
Регистрация: 05.06.2012
Санкт-Петербург
Сообщений: 46


Цитата:
Сообщение от hwd Посмотреть сообщение
Это проблемы организационного характера.
Тот кто печатает, тот и электронную версию должен отправлять на стройку, вместе с распечатанной версией. Кроме того - в свободном доступе сотрудникам должна быть только одна версия проекта, дабы не создавать потенциальной возможности возникновения указанных проблем, мол распечатали одну версию, а в электронном виде передали другую. Документацию на стройку передавать сразу бумага + электронная версия. Кроме того - наличие электронной подписи в чертеже, гарантирует то, что на стройке чертёж не был изменён.

На полях рамки листа можно ставить дату печати (с помощью поля). В случае необходимости всегда можно сравнить эту дату с датой изменения файла (скрин выше). Если дата печати (на полях бумажной версии) более поздняя, чем дата изменения - значит содержимое листа соответствует последней версии чертежа. Этот способ годится для того, чтобы проверить конкретный, интересующий в данный момент лист чертежа.

Однако корень обозначенной автором топика проблемы лежит в плохой организации процесса хранения и передачи документации (имхо).
Корень проблемы обозначен правильно и не признавать это было бы глупо с моей стороны. Я же в рамках своей должности пытаюсь свести ошибки с уже имеющейся документацией к минимуму, а для будущего нужно устранять именно корень проблемы. Спасибо за дельные советы и рамки с полями. Но все же мне кажется, что файл чертежа содержащий в имени дату создания, которая автоматически ставиться и забыть её поставить не получится. Мы всегда стремимся организовать все идеально но часто все идет не совсем так как нам бы хотелось и на стройке это очень часто бывает. Сам все не охватишь, поручаешь исполнителям и в результате получаешь не то что хотел.В общем это дискуссия не для этой темы и мне бы не хотелось в этой теме обсуждать внутренние организационные проблемы. Может подскажете как реализовать доступ сотрудникам к одной версии проекта?
Denis Ch вне форума  
 
Непрочитано 03.07.2012, 21:51
1 | #24
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Denis Ch Посмотреть сообщение
Но все же мне кажется, что файл чертежа содержащий в имени дату создания, которая автоматически ставиться и забыть её поставить не получится.
А по хорошему этого делать и не следует, т.к. в этом случае порушатся все внешние ссылки, ссылающиеся на такие чертежи + подшивка (SheetSet) пойдёт лесом... Глянь в моём предыдущем сообщении "UPD" - там мною предложен вариант проверки соответствия электронной версии бумажным.

Цитата:
Сообщение от Denis Ch Посмотреть сообщение
Может подскажете как реализовать доступ сотрудникам к одной версии проекта?
В сети создаётся каталог, в который всегда выкладывается последняя, предназначенная для отправки на стройку, версия проекта. Как только появится новая версия проекта, готовая к отправке - старая версия упаковывается в zip-файл и сдаётся в архив (если решили не использовать GIT), а на место старой, в обозначенный выше каталог, записывается новая версия проекта. Эта версия распечатывается и вместе с электронной версией отправляется начальнику участка. Если возникнет необходимость - из архива всегда можно будет вытащить нужную, более раннюю версию проекта.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 03.07.2012, 22:04
#25
Denis Ch

Сопровождение проектов, внутренний технадзор
 
Регистрация: 05.06.2012
Санкт-Петербург
Сообщений: 46


Цитата:
Сообщение от hwd Посмотреть сообщение
А по хорошему этого делать и не следует, т.к. в этом случае порушатся все внешние ссылки, ссылающиеся на такие чертежи + подшивка (SheetSet) пойдёт лесом... Глянь в моём предыдущем сообщении "UPD" - там мною предложен вариант проверки соответствия электронной версии бумажным.
Тут вы правы.Я упустил данный момент с ссылками и подшивкой.Вариант очень интересный, но еще больше интересна его практическая реализация. Мой уровень программирования скажем так не столь высок, чтобы реализовать вашу идею.Можете более наглядно рассказать про практическую реализацию?

Цитата:
Сообщение от hwd Посмотреть сообщение
В сети создаётся каталог, в который всегда выкладывается последняя, предназначенная для отправки на стройку, версия проекта. Как только появится новая версия проекта, готовая к отправке - старая версия упаковывается в zip-файл и сдаётся в архив (если решили не использовать GIT), а на место старой, в обозначенный выше каталог, записывается новая версия проекта. Эта версия распечатывается и вместе с электронной версией отправляется начальнику участка. Если возникнет необходимость - из архива всегда можно будет вытащить нужную, более раннюю версию проекта.
Очень интересная идея мне нравиться.Её реализация помогла бы избавиться от корня проблемы. Самое сложное провести её реализацию и объяснить руководству, что это реально нужно и позволит сэкономить время, нервы и деньги, ну и минимизировать ошибки связанные с человеческим фактором.
Denis Ch вне форума  
 
Непрочитано 03.07.2012, 22:17
#26
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Denis Ch Посмотреть сообщение
Можете более наглядно рассказать про практическую реализацию?
А чего там рассказывать? Перебрать рекурсивно все файлы в указанном каталоге, извлекая из них значение свойства FileInfo.LastWriteTime (в случае использования для этих целей платформы .NET). Результат записывать в текстовый файл, в формате CSV, чтобы этот файл можно было открыть в MS Excel и выполнять различного рода сортировку (при необходимости). Написать это можно на любом языке программирования. Могу и я нацарапать - это займёт не много времени (минута-две, если консольный вариант решения). Могу сделать exe на .NET, либо оформить в виде скрипта на PowerShell. В первом случае нужно знать, какая версия дотнета на твоей машине (либо хотя бы какая версия автокада). Во втором случае нужно знать, установлен ли PowerShell на компе, иначе нечему будет запускать скрипт на исполнение.

Цитата:
Сообщение от Denis Ch Посмотреть сообщение
Самое сложное провести её реализацию и объяснить руководству, что это реально нужно и позволит сэкономить время, нервы и деньги, ну и минимизировать ошибки связанные с человеческим фактором.
А вот доказывание чего-то руководству - это всегда самая тяжёлая и неприятная часть решения, забирающая много крови и нервов...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 03.07.2012, 22:21
#27
StSK


 
Регистрация: 03.07.2012
Сообщений: 1


Как то, так
Код:
[Выделить все]
Sub saveASdatetime()

    pathf = ThisDrawing.Path
    namef = Left(ThisDrawing.Name, (Len(ThisDrawing.Name) - 4))
    tipf = Right(ThisDrawing.Name, 4)
    f = InStr(namef, "_20")
    If f <> 0 Then namef = Left(namef, (Len(namef) - 20))

    'Дата
        date_ = Date
        YY = Right(date_, 4) & "."
        MM = Mid(Date, 4, 2) & "."
        DD = Left(date_, 2)
        datef = YY & MM & DD
    'Время
        time_ = Time
        Hour_ = Mid(time_, 1, 2) & "."
        MINUT_ = Mid(time_, 4, 2) & "."
        SEC_ = Mid(time_, 7, 2)
        timef = Hour_ & MINUT_ & SEC_
ThisDrawing.SaveAs (pathf & "\" & namef & "_" & datef & "_" & timef & tipf)

End Sub
StSK вне форума  
 
Непрочитано 03.07.2012, 22:22
#28
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от StSK Посмотреть сообщение
Как то, так
хреновое решение.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 03.07.2012, 22:28
#29
SetQ

конструктор
 
Регистрация: 21.07.2007
Петрозаводск
Сообщений: 1,599


Цитата:
Сообщение от hwd Посмотреть сообщение
хреновое решение.
Потому что так поздно пришло?
SetQ вне форума  
 
Непрочитано 03.07.2012, 22:34
1 | #30
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от SetQ Посмотреть сообщение
Потому что так поздно пришло?
Потому, что в #24 я объяснил, чем такое решение плохо.

2 Denis Ch
Я написал консольное exe-приложение, создающее csv-файл с соответствующей информацией. Дело за тобой - определись с версией .NET Framework. На данный момент скомпилировано под 4.0, но могу перекомпилировать под 3.5 SP1.

Если это интересно, то исходный код программы такой:
Код:
[Выделить все]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dg = System.Diagnostics;
using System.IO;

namespace LastWriteTimeReport
{
    class Program
    {
        /// <summary>
        /// В качестве параметров приложению следует передавать три обязательных параметра (строго в указанном порядке):
        /// 1 Параметр: путь к каталогу, содержимое которого необходимо проанализировать
        /// 2 Параметр: полное имя csv файла с отчётом
        /// 3 Параметр: фильтр, согласно которому должны выбираться все файлы из каталога, 
        /// указанного в первом параметре. Поиск выполняется рекурсивно.
        /// Примеры фильтров: 
        /// "*" - выбрать все файлы.
        /// "*.dwg" - выбрать все файлы чертежей.
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            try
            {
                Dg.Debug.Assert(args != null && args.Length == 3, "args != null && args.Length == 3");
                if (args == null || args.Length != 3)
                    throw new ArgumentException();

                String dirName = args[0];
                String csvName = args[1];
                String filter = args[2];

                Dg.Debug.Assert(!String.IsNullOrWhiteSpace(dirName) && !String.IsNullOrWhiteSpace(csvName) &&
                    !String.IsNullOrWhiteSpace(filter),
                    "!String.IsNullOrWhiteSpace(dirName) && !String.IsNullOrWhiteSpace(csvName) && !String.IsNullOrWhiteSpace(filter)");

                if (String.IsNullOrWhiteSpace(dirName) || String.IsNullOrWhiteSpace(csvName) || String.IsNullOrWhiteSpace(filter))
                    throw new ArgumentException();

                DirectoryInfo dir = new DirectoryInfo(dirName);

                Dg.Debug.Assert(dir.Exists, "dir.Exists");
                if (!dir.Exists)
                    throw new DirectoryNotFoundException();

                StringBuilder sb = new StringBuilder();
                sb.Append("Полное имя файла;Дата изменения");
                sb.AppendLine();
                foreach (FileInfo item in dir.GetFiles(filter, SearchOption.AllDirectories))
                {
                    sb.Append(item.FullName);
                    sb.Append(";");
                    sb.Append(item.LastWriteTime.ToString("dd-MM-yyyy hh:mm:ss"));
                    sb.AppendLine();
                }
                String result = sb.ToString();
                File.WriteAllText(csvName, sb.ToString(), Encoding.UTF8);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Ошибка: {0}", ex.Message);
                Console.WriteLine("Нажмите любую клавишу для завершения работы программы.");
                Console.ReadKey();
            }
        }
    }
}
Пример вызова программы (параметры обязательны - в комментариях кода они описаны):
Цитата:
C:\Users\user\Desktop> "LastWriteTimeReport.exe" "C:\ObjectARX 2009" "C:\test\123.csv" "*"
Полученный CSV файл открываешь в MS Excel, распечатываешь и сравниваешь даты изменения файлов с теми, которые указаны на полях бумажных версий чертежей.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 03.07.2012 в 23:33.
hwd вне форума  
 
Автор темы   Непрочитано 04.07.2012, 09:38
#31
Denis Ch

Сопровождение проектов, внутренний технадзор
 
Регистрация: 05.06.2012
Санкт-Петербург
Сообщений: 46


Большое спасибо вам hwd NET Framework у меня 4-й версии.
Denis Ch вне форума  
 
Непрочитано 04.07.2012, 10:28
#32
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Denis Ch Посмотреть сообщение
Большое спасибо вам hwd NET Framework у меня 4-й версии.
Насколько удобен вам предложенный выше вариант (я о том, что аргументы указываются в виде параметров exe-файла)? Может сделать их запрашиваемыми в ходе выполнения программы? Для автоматизации удобней первый вариант, а для ручного использования - второй. Вы как планируете использовать?
UPD
Хотя... Пожалуй, сделаю так: если аргументы exe-файлу не переданы, то выполнять запросы. Тогда можно будет использовать программу в обоих перечисленных выше ситуациях.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 04.07.2012, 11:20
#33
Denis Ch

Сопровождение проектов, внутренний технадзор
 
Регистрация: 05.06.2012
Санкт-Петербург
Сообщений: 46


Цитата:
Сообщение от hwd Посмотреть сообщение
Насколько удобен вам предложенный выше вариант (я о том, что аргументы указываются в виде параметров exe-файла)? Может сделать их запрашиваемыми в ходе выполнения программы? Для автоматизации удобней первый вариант, а для ручного использования - второй. Вы как планируете использовать?
UPD
Хотя... Пожалуй, сделаю так: если аргументы exe-файлу не переданы, то выполнять запросы. Тогда можно будет использовать программу в обоих перечисленных выше ситуациях.
Лично мне больше всего нравится вариант если аргументы не переданы, то выполнять запросы.
Denis Ch вне форума  
 
Непрочитано 04.07.2012, 12:01
1 | #34
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Denis Ch Посмотреть сообщение
Лично мне больше всего нравится вариант если аргументы не переданы, то выполнять запросы.
Лови. Прежде чем юзать - прочти файл ReadMe.txt. Помимо прочего я добавил возможность указывать фильтры в виде регулярных выражений - это гораздо более гибкий способ, чем обычные фильтры. Но если ты с регексами не дружишь, то лучше используй обычные фильтры. В принципе, можно добавить автоматическое открытие полученного CSV файла в MS Excel, но это на мой взгляд не обязательно...

UPD
Добавил изменение: если работа с программой ведётся посредством диалога с юзером, то по завершению её работы в MS Excel автоматически открывается полученный CSV файл. Если работа с программой ведётся посредством передачи EXE файлу параметров - CSV файл автоматом открываться не будет. Ссылку обновил.
Всё, финиш.
Вложения
Тип файла: zip LastWriteTimeReport.zip (15.0 Кб, 67 просмотров)
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 04.07.2012 в 12:24.
hwd вне форума  
 
Автор темы   Непрочитано 04.07.2012, 12:55
#35
Denis Ch

Сопровождение проектов, внутренний технадзор
 
Регистрация: 05.06.2012
Санкт-Петербург
Сообщений: 46


Цитата:
Сообщение от hwd Посмотреть сообщение
UPD
Добавил изменение: если работа с программой ведётся посредством диалога с юзером, то по завершению её работы в MS Excel автоматически открывается полученный CSV файл. Если работа с программой ведётся посредством передачи EXE файлу параметров - CSV файл автоматом открываться не будет. Ссылку обновил.
Всё, финиш.
Проверил, все отлично работает.Правда есть один момент с временем изменения- вместо 17:35 показывает 5:35, можно ли как-то это поправить? А так огромное спасибо за программу.
Denis Ch вне форума  
 
Непрочитано 04.07.2012, 13:04
1 | #36
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Denis Ch Посмотреть сообщение
Правда есть один момент с временем изменения- вместо 17:35 показывает 5:35, можно ли как-то это поправить?
Исправил, проверяй.
Вложения
Тип файла: zip LastWriteTimeReport (fixed).zip (15.3 Кб, 96 просмотров)
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 04.07.2012, 13:13
#37
Denis Ch

Сопровождение проектов, внутренний технадзор
 
Регистрация: 05.06.2012
Санкт-Петербург
Сообщений: 46


Цитата:
Сообщение от hwd Посмотреть сообщение
Исправил, проверяй.
Все работает время отображается нормально.
Огромное спасибо
Denis Ch вне форума  
 
Непрочитано 04.07.2012, 15:24
#38
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 11,400


Интересно, почему не пользуются специально предназначенным для подобных дел SummaryInfo (т.е. свойствами файла)?
Туда можно и вручную и программно писать. И читать. И искать файлы с какими-то признаками. И вручную, и программно.
ShaggyDoc вне форума  
 
Непрочитано 04.07.2012, 15:28
#39
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Интересно, почему не пользуются специально предназначенным для подобных дел SummaryInfo (т.е. свойствами файла)?
Туда можно и вручную и программно писать. И читать. И искать файлы с какими-то признаками. И вручную, и программно.
Не понял вопроса... А я что, как-то иначе информацию получал? Первым способом указал вручную, вторым - программно.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 04.07.2012, 19:00
#40
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 11,400


Цитата:
Сообщение от hwd Посмотреть сообщение
Не понял вопроса... А я что, как-то иначе информацию получал? Первым способом указал вручную, вторым - программно.
Так не к тебе вопрос. А к изначальным "постановщикам задачи" - зачем придумывать всякие хитрости с именем файла, когда любую дополнительную информацию можно внести штатными средствами, без программирования.
Что, не хотят заполнять? Так и программу тоже не захотят запускать.
ShaggyDoc вне форума  
 
Непрочитано 19.07.2012, 02:37
#41
Dukk


 
Регистрация: 13.06.2008
Сообщений: 14


можно в total commander создать кнопку добавляющую текущую дату перед выбранными файлами
ссылка на оригинальный скрипт - http://tc-image.3dn.ru/forum/3-66-1#312
здесь объясняют как установить скрипты в total commander http://tc-image.3dn.ru/forum/3-6-1
' NameByDate.vbs
'======================== Описание =====================
' Переименование выделенного -- добавление даты перед именем
' Параметры %L
' Автор: Volniy & Аверин Андрей
' Версия: 1.12 (2006 - 07.07.2012)
' Site: http://tc-image.3dn.ru/forum/3-66-312-16-1330560904
'======================================================
With CreateObject("Scripting.FileSystemObject")
Set List = .OpenTextFile(WScript.Arguments(0), 1)
Do While Not List.AtEndOfStream
FF = List.ReadLine
If .FileExists(FF) Then : Set GFO = .GetFile(FF) : Else : Set GFO = .GetFolder(FF) : End If
GFO.Name = Year(date) & "-" & Right("0" & Month(date), 2) & "-" & Right("0" & Day(date), 2) & " " & GFO.Name
Loop
End With
Set GFO = Nothing : Set List = Nothing : Wscript.Quit

Для этого создаем новую кнопку, и в строке "Команда" пишем:

cmd /c

В строке "Параметры" пишем

for /f "tokens=1,2,3,4 delims=. " %%a in ('date /t') do md "%%d%%c-%%b-%%a"

Значок на свое усмотрение, конечно же.
Формат отображения тоже. Параметры правим как больше нравится.
Удачи.
Dukk вне форума  
 
Непрочитано 10.01.2020, 10:58
1 | #42
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 1,692
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от hwd Посмотреть сообщение
тынц.
попробовал в АК 2018, работает, но
по видимому делает Wblock, поэтому фильтры слоев и параметры листов в копиях чертежей не сохраняются (((
готового решения не нашел, надергал кусков кода и собрал в меру своего понимания
работает
Код:
[Выделить все]
 
(defun c:DQC(/ dn pa panbdn) ;DwgQuickCopy
(setq dn (getvar "dwgname"))
(setq pa (getvar "dwgprefix"))
(vl-mkdir (setq kat (strcat pa  "\@OlD_DWG")))
(setq dd (itoa (fix(getvar "CDATE"))))
(setq tt (get-time (getvar "cdate")))
(setq lenn(strlen dn))
(setq ll(strcat (substr dn 1 (- lenn 4) )))
(setq panbdn (strcat kat "\\" ll "_" dd "-" tt ))
 (command "_SAVE" panbdn )
) 
;
(defun get-time (date) ;kpblc
         ; date - аналог (getvar "cdate")
 (setq date (itoa (fix (* 1e6 (- date (fix date)))))
       ) ;_ end of setq
 (while (< (strlen date) 6)
   (setq date (strcat "0" date))
   ) ;_ end of while
 (strcat date) ;(substr date 1 2) "_" (substr date 3 2) "_" (substr date 5 2))
 ) ;_ end of defun
лисп создает каталог рядом с копируемым файлом и сохраняет в этот каталог текущую копию с именем вида
ИМЯФАЙЛА_YYYYMMDD-hhmmss
__________________
Мастерская СПДС
doctorraz на форуме  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как автоматически добавлять к имени файла дату и время его создания при сохранении

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
А как насчёт уважения к РУССКОМУ ЯЗЫКУ, дамы и господа инженеры? Зяблик Разное 1228 22.09.2017 10:27
Электромагнитная пушка T-Yoke Машиностроение 112 06.08.2008 18:48
Юмор 2007 Огурец Разное 1172 29.12.2007 11:16
английский ACAD2005 в имени файла не понимает русские буквы sv_penza AutoCAD 6 26.04.2007 16:20