Flasher

|
Posted: Mon Feb 08, 2016 11:17 Post subject: |
|
|
Mailk
По запросу версий для SLDPRT, SLDLFP, SLDASM.
Пишем в script.ini, например:
Code: | [Script]
Section=SolidFileVersion
[SolidFileVersion]
Script=SolidWorksFile_Version.vbs | и рядом кидаем
 SolidWorksFile_Version.vbs Code: | Set FSO = CreateObject("Scripting.FileSystemObject")
Set Reg = New Regexp
With Reg
.IgnoreCase = True : .Pattern = "^SLD(PRT|LFP|ASM)$"
If .Test(FSO.GetExtensionName(FileName)) Then
Set File = FSO.OpenTextFile(FileName)
File.Skip(1672) : .Pattern = "VERSION_(\d{2,4})"
Ver = Replace(File.Read(23), Chr(0), "")
If .Test(Ver) Then
Content = .Execute(Ver)(0).SubMatches(0)
Else
Search 0, 38, AB, Cont : Content = Cont
If Cont = "" Then _
Search FSO.GetFile(FileName).Size + AB - 72000, 50, "", Cont
Content = Cont
End If
End If : Set FSO = Nothing
End With : If Len(Content) Then _
Content1 = Split("2015 2014 2013 2012 2011 2010 2009 2008 2007"&_
" 2006 2005 2004 2003 2001+ 2001 2000 99 98+ 98 97+ 97 96 95")_
((InStr("8000|7000|6000|5000|4700|4400|4100|3800|3400|3100|2800|"&_
"2500|2200|1950|1750|1500|1137|1008| 822| 629| 483| 243| 44|",_
Right(" " & Content &"|",5))-1)/5): File.Close: Set File = Nothing
Sub Search(Skp, Max, Bt, Con)
B = 512 : Bt = 0 : File.Skip(Skp)
For i = 1 To Max
Bt = Bt + B : VPr = File.Read(B)
Ver = Replace(Ver & VPr, Chr(0), "")
If Reg.Test(Ver) Then
n = n + 1 : Con = Reg.Execute(Ver)(0).SubMatches(0)
If Len(Con) = 4 Or n = 2 Then Exit For Else B = 6
End If : Ver = VPr
Next
End Sub |
Result покажет версию, Result1 - релиз.
P.S.: Тестировал только на том, что приложено. Остальное нужно проверять. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Mon Feb 15, 2016 05:32; edited 6 times in total |
|