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 |