Sub RenameTiffFile(tiffFileName As String)
Dim newFileName As String
Dim iFileNbr As Integer, iPos As Integer
Dim myFileId As Long, MyFileLen As Long, FileLen As Long
Dim i As Long, n As Long
Dim myArr() As Byte
Dim IsTagFound As Boolean
Dim TagCount As Integer, iCount As Integer, iCharCount As Integer
Dim TagValueOffset As Long, OffsetIFD As Long, TagOffset As Long
Dim sCallerID As String, sTag As String, fieldType As String, sCount As String
Dim destFolder As String
iPos = InStrRev(tiffFileName, "")
destFolder = Right(tiffFileName, Len(tiffFileName) - iPos)
destFolder = Replace(tiffFileName, destFolder, "")
iFileNbr = FreeFile
myFileId = FreeFile
Open tiffFileName For Binary As #myFileId
MyFileLen = LOF(myFileId)
ReDim myArr(MyFileLen - 1)
Get myFileId, , myArr()
Close myFileId
i = 0
If myArr(i) = &H49 And myArr(i + 1) = &H49 And myArr(i + 2) = &H2A Then
OffsetIFD = CLng(&H1000000) * myArr(i + 7) + CLng(&H10000) * myArr(i + 6) + CLng(&H100) * myArr(i + 5) + myArr(i + 4)
i = OffsetIFD
TagCount = CInt(&H100) * myArr(i + 1) + myArr(i)
i = OffsetIFD + 2
IsTagFound = False
For iCount = 1 To TagCount
sTag = Format(Hex(myArr(i + 1))) & Format(Hex(myArr(i)))
DoEvents
If sTag = "9C45" Then
iCharCount = CLng(&H1000000) * myArr(i + 7) + CLng(&H10000) * myArr(i + 6) + CLng(&H100) * myArr(i + 5) + myArr(i + 4)
TagOffset = CLng(&H1000000) * myArr(i + 11) + CLng(&H10000) * myArr(i + 10) + CLng(&H100) * myArr(i + 9) + myArr(i + 8)
sCallerID = ""
If TagOffset < MyFileLen Then
For n = TagOffset To TagOffset + iCharCount - 1
sCallerID = sCallerID + Chr(CInt(myArr(n)))
Next
sCallerID = Replace(sCallerID, vbNullChar, "")
sCallerID = Replace(sCallerID, Chr(20), "")
sCallerID = Replace(sCallerID, ",", "")
sCallerID = Replace(sCallerID, ":", "")
sCallerID = Replace(sCallerID, "/", "")
sCallerID = Replace(sCallerID, "?", "")
sCallerID = Replace(sCallerID, "*", "")
sCallerID = Replace(sCallerID, "", "")
sCallerID = Replace(sCallerID, "|", "")
sCallerID = Replace(sCallerID, ">", "")
sCallerID = Replace(sCallerID, "<", "")
sCallerID = Replace(sCallerID, "[", "")
sCallerID = Replace(sCallerID, "]", "")
sCallerID = Trim(sCallerID)
If Len(sCallerID) < 3 Then
IsTagFound = False
Exit For
End If
Else
IsTagFound = False
Exit For
End If
newFileName = sCallerID & ".tif"
newFileName = destFolder & newFileName
Name tiffFileName As newFileName
IsTagFound = True
Exit For
End If
i = i + 12
Next
If IsTagFound = False Then
Name tiffFileName As destFolder & Format(Now(), "YYYY-MM-DD-HH-MM-SS") & ".tif"
End If
Else
MsgBox "This is not a supported TIFF file format. ", vbCritical, "Error"
End If
End Sub
|