PDA

Показать полную графическую версию : [решено] свойства *.dwg файла в документ Word


Страниц : 1 [2]

Iska
05-06-2013, 11:29
как добавить вывод автора последних изменений ? »
firstarey, нет такого свойства. Может быть просто «Автор».

Если а) данное свойство поддерживается документом и б) если Проводник имеет доступ к этому свойству, то можно попробовать.

Вот пример получения значения свойства:
Option Explicit

WScript.Echo GetProperty("E:\Песочница\0264\марк.xlsx", "Автор")

WScript.Quit 0
'=============================================================================

'=============================================================================
Function GetProperty(strPath, strProperty)
Dim objFile

Dim objFolder
Dim objFolderItem

Dim intPropertyNumber

With WScript.CreateObject("Scripting.FileSystemObject")
If Not .FileExists(strPath) Then
WScript.Echo "Can't find file [" & strPath & "]."

Exit Function
End If

Set objFile = .GetFile(strPath)
End With

With WScript.CreateObject("Shell.Application")
Set objFolder = .NameSpace(objFile.ParentFolder.Path)

If Not objFolder Is Nothing Then
Set objFolderItem = objFolder.ParseName(objFile.Name)

If Not objFolderItem Is Nothing Then
intPropertyNumber = GetPropertyNumberByName(strProperty)

If IsEmpty(intPropertyNumber) Then
WScript.Echo "Can't find property name [" & strProperty & "]."

Exit Function
End If

GetProperty = objFolder.GetDetailsOf(objFolderItem, intPropertyNumber)
Else
WScript.Echo "Can't parse file name [" & objFile.Name & "]."
End If
Else
WScript.Echo "Can't get folder [" & objFile.ParentFolder.Path & "]."
End If
End With
End Function
'=============================================================================

'=============================================================================
Function GetPropertyNumberByName(strProperty)
Dim objFolder
Dim i

With WScript.CreateObject("Shell.Application")
Set objFolder = .NameSpace("shell:System")

If Not objFolder Is Nothing Then
For i = 0 To 2^8 - 1
If LCase(objFolder.GetDetailsOf(, i)) = LCase(strProperty) Then
GetPropertyNumberByName = i

Exit For
End If
Next
End If
End With
End Function
'=============================================================================

firstarey
05-06-2013, 14:30
Iska, благодарю за ответ.
отчего то думал что авторство последних изменений сохраняется *pardon*

Iska
05-06-2013, 16:26
firstarey, всё возможно — я этого попросту не знаю, поскольку у меня нет ни развёрнутого AutoCad'а, ни его «тёзок» (если речь по прежнему о документах формата dwg; если найдёте. что-таки есть — дайте знать, попробую почитать документацию на предмет доступа посредством Automation). Потому я привёл пример из доступных мне.

Sta1917
05-06-2013, 17:20
Есть такое свойство, %<\AcVar LastSavedBy>% это данные для вставки в текст AutoCad
Как получить к нему доступ не знаю, но есть решения экспорта (http://www.google.ru/cse?cx=partner-pub-1987857910490103%3Azeqjjx-kn0v&ie=windows-1251&q=%E8%E7%E2%EB%E5%F7%E5%ED%E8%E5+%E4%E0%ED%ED%FB%F5&sa=%CF%EE%E8%F1%EA&siteurl=forum.dwg.ru%2F&ref=&ss=192j36864j2#gsc.tab=0&gsc.q=%D0%B8%D0%B7%D0%B2%D0%BB%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B% D1%85&gsc.page=1) данных из открытого AutoCAD. Также это (http://forum.dwg.ru/showthread.php?t=71807) может быть полезным.

Iska
05-06-2013, 17:57
Sta1917, понятно.

Теоретически, сделать можно. Но желания заниматься подсчётом смещений нет ни малейшего.

У Вас вообще что? Какой продукт установлен?

Sta1917
06-06-2013, 03:00
Думаю лучше воспользоваться готовым решением экспорта в эксель с dwg.ru

Iska
06-06-2013, 03:11
Воспользуйтесь.

firstarey
06-06-2013, 08:42
Изначально полагалось что это расположено в свойствах файла, как например дата последнего изменения документа и, соответственно, возможно доработать предложенный в этой теме скрипт.

На данный момент остановился на том, что изменил предложенный Iska шаблон под свои нужды (полный путь до файла, имя, дата последнего изменения, последнего доступа, размер. не хватает лишь автора последнего изменения).

Раз уж все не так просто, то на том и остановимся, спасибо откликнувшимся.

Iska
06-06-2013, 10:03
Изначально полагалось что это расположено в свойствах файла, как например дата последнего изменения документа и, соответственно, возможно доработать предложенный в этой теме скрипт. »
Увы, нет. Это внутреннее свойство документа, и, судя по общедоступной информации, не транслируется Проводнику (кое-кто предлагает купить библиотеку, которая будет это делать).




© OSzone.net 2001-2012