以前随便写的代码(改了下可以提取word或excel文件里多个嵌入的FWS格式的flash文件,分别保存) Sub ReadData() Dim tmpFileName As String, FileNumber As Integer, OldName As String Dim myFileId As Long Dim myArr() As Byte Dim i As Long Dim MyFileLen As Long, myIndex As Long Dim swfFileLen As Long Dim swfArr() As Byte tmpFileName = Application.GetOpenFilename("office File(*.doc;*.xls),*.doc;*.xls", , "确定要分析的office文件") If tmpFileName = "False" Then Exit Sub myFileId = FreeFile Open tmpFileName For Binary As #myFileId MyFileLen = LOF(myFileId) ReDim myArr(MyFileLen - 1) Get myFileId, , myArr() Close myFileId Application.ScreenUpdating = False OldName = Left(tmpFileName, Len(tmpFileName) - 4) i = 0 Do While i < MyFileLen If myArr(i) = &H46 Then If myArr(i + 1) = &H57 And myArr(i + 2) = &H53 Then swfFileLen = CLng(&H1000000) * myArr(i + 7) + CLng(&H10000) * myArr(i + 6) + CLng(&H100) * myArr(i + 5) + myArr(i + 4) ReDim swfArr(swfFileLen - 1) For myIndex = 0 To swfFileLen - 1 swfArr(myIndex) = myArr(i + myIndex) Next myIndex myFileId = FreeFile tmpFileName = OldName & i & ".swf" Open tmpFileName For Binary As #myFileId Put #myFileId, , swfArr Close myFileId i = i + swfFileLen + 8 Else i = i + 3 End If Else i = i + 1 End If Loop MsgBox "以" & OldName & "1-n.swf 名字保存" End Sub
[此贴子已经被作者于2007-4-29 22:09:54编辑过] |