Доброго времени суток, ребят.
Я уже как-то сидел тут с этим кодом.. В общем, нужно мне его допилить, я как бы скачал порекомендованные тут книги Владимира Баталия, поизучаю.
Но может кто сможет по-быстрому помочь подшлифовать.
[more]
Код: 'VBS
Set objShellApp = CreateObject("Shell.Application") ' создаем объект оболочки
Set FSO = CreateObject("Scripting.FileSystemObject") ' создаем объект файловой системы
FileChangedCount = 0 ' Количество обработанных файлов
Main ' Поиск файлов
Sub Main '""""""""""""""""" Поиск файлов
On error Resume Next ' Если файлы открыты приложением, будут пропущены
Set OpenDialog = CreateObject("MSComDlg.CommonDialog") ' Microsoft Common Dialog Control
With OpenDialog
.DialogTitle = "Откройте нужный Вам файл(ы)"
.InitDir = "C:\"
.Filter = "Модели Solidworks (*.sldlfp,*.sldasm)|*.sldlfp;*.sldasm" ' Расширения файлов
.FilterIndex = 1
.Flags = 2621952
.MaxFileSize =32000
.ShowOpen
Filename = .Filename
End With
If (Len(OpenDialog.FileName)= 0) Then
msgbox "Файлы не выбраны!"
Exit Sub
End If
files = Split(OpenDialog.Filename, vbNullChar)
count_files = UBound(files)
If count_files > 0 Then
path = files(0) + "\" ' в ХР работает этот вариант path = files(0), в W7 почему то в окончании \ отсутствует
For i = 1 To count_files
PropertySearch path + files(i) ' Если выбрано несколько файлов
Next
Else
PropertySearch path + files(0) ' Если выбран один файл
End If
Msgbox "Выполнено." &chr(13)& "Количество обработанных файлов: "& FileChangedCount, vbInformation
End Sub
Sub PropertySearch (FilePath) '""""""""""""""""" поиск свойств файла
'msgbox "FilePath = " & FilePath
Set Cprop = CreateObject("DSOFile.OleDocumentProperties") ' создаем объект подключения к свойствам файла
Cprop.Open FilePath, false ' Открываем текущий файл
IsHere = "" ' Наличие свойства Наименование, если останется "" то нету
if Cprop.CustomProperties.count > 0 then ' Если у файла есть свойства
for iprop=0 to Cprop.CustomProperties.count-1 ' цикл по свойствам
if Cprop.CustomProperties.item(iprop).Name = "Наименование" then ' если Наименование есть
IsHere = 1 ' делаем отметку
Exit For
End if
Next
End if
If IsHere = "" then ' если Наименование нету
AddCustomProperty Cprop ' назначение свойств для файла
else
AddCustomPropertyEx Cprop, iprop ' если есть
End if
Cprop.close ' закрываем файл
End Sub
Sub AddCustomProperty(Cprop) '""""""""""""""""" назначение свойств для файла
key = "Наименование" ' Имя свойства
valueForKey = "Круг" ' Значение свойства
Cprop.CustomProperties.Add key, valueForKey ' Добавляем новое свойство с
Cprop.Save ' Сохранить изменения
FileChangedCount = FileChangedCount + 1 ' Инкрементация счетчика обработанных
End Sub
Sub AddCustomPropertyEx(Cprop,iprop) '""""""""""""""""" назначение свойств для файла
valueForKey = "Круг" ' Значение свойства
Cprop.CustomProperties.Item(iprop).value = valueForKey ' изменяем свойство
Cprop.Save ' Сохранить изменения
FileChangedCount = FileChangedCount + 1 ' Инкрементация счетчика обработанных
End Sub
'""""""""""""""""" Освобождаем память
Set objShellApp = Nothing
Set FSO = Nothing
Set Cprop = Nothing
Set OpenDialog = Nothing