分析教程内有QQ邮件 已经过期: ?) w! Z7 ]+ Z8 e
等FTP好了我再上传
9 X4 \# x0 {+ O+ j9 I" `+ K+ m3 L! T% k3 \( B
; Z" [& b$ I- b- G6 M' [% g
上传完毕
# ^! \, y1 K J5 h) j Iftp好像上传了看不到下载目录..或许我的账号有误吧
& p% P. c0 X; a2 O4 b- O. x: u
* G# G: {5 a7 G写了那么久,值得鼓励一下吧~回帖吧~
' L H( @' u6 E6 j
3 j# V1 x' I3 }6 X0 {, `刚刚发完就给下载了...不回帖支持~不厚道么~内附解包代码
! h' R$ `9 g: Y: Z- B2 `4 _: k/ j- Q- p/ B3 [
; e$ {- E- ]" m' j; Z- I5 R* j$ H8 K
: w7 d+ J' B. d) D- |3 _8 \3 N2 j, u' g9 h) W
0 m; z3 i* ?% Y, w
[strike]QQmail上传ing...[/strike]
. S3 ^' J+ K4 N6 a; Q
6 v0 f" E7 B2 r: }! [教程分上下,A是准备工作和废话
- W- U6 _' S: Q$ O( d# B! M i B是废话+操作
5 P0 V. _: i+ w1 r( G4 D& \' U: U: Y- k6 v, W
水品有限...所以东西自然也有限,高手自觉略过吧.....1 J, P' _6 Y0 t) i* F/ g3 F3 `
. @: h, ~" ]9 j& R; L
主要代码拷贝到这里了,那个俺学习的时候,给我踩踩blog...* A. C6 R5 ~; m# M$ ?- o" V
0 O, \. u8 q% k H5 a
教程补充: ) {% ~, ~! v% K( e
这个只是一个demo而已..还有太多地方该去改进,这个活交给聪明的你了。
+ V3 |, O$ V% o: i5 T本来还有一个小工具的,可是呢,受限于信用问题,已经投稿便不能发了。。。
- V- f1 j( r4 Y3 k操作文件C是王道,但是使用其他工具也没有问题的,甚至是轻量脚本php
`- G/ _' a( N如果你也用VB6或者VBNET可以考虑FSO,[其实和GET PUT一样的]8 `+ Q8 \0 h7 Y- E$ d
例子中没有告诉大家要注意资源的使用,比如初始化[虽然我有做]和. }, X1 @/ k. E4 i5 g0 X1 B" U+ T
注销使用了的变量,我放到程序结束的时候了。
5 o7 P O9 D) F3 Y& _, X( d程序中没有检验传入数据,请注意,那个提取我检验过了,所以就删除掉了,
8 T- l: P( a( b( W; Z 那个indexB,的范围改成图片的数量就可以了,估计是手误吧... : J& `( T7 K1 f9 W' q1 ~
前面几个字符的处理其实也简单,不停的更换前面的那个头部结构声明,然后读取- S! j1 X7 I/ k
看看能和什么匹配就好,或者你就跟踪程序操作文件吧,在读取文件的API处下断, t) I* X* j8 y
我去学习了,所以去踩博客吧~呵呵~
. N7 O4 w6 t) G# }8 i0 g' l- Private Sub FirUnPack2()
- Dim strPathLen As Integer
- Dim strPathChar() As String * 1
- Dim strResPath As String
- Dim intSize As Integer
- Dim bData() As Byte
- Dim lngSize As Long
- Dim strFilePath As String
- Dim tmpStep As Single, lngIndex As Long, lngFileNumA As Long, lngFileNumB As Long
- strFilePath = App.Path & "\test.adv"
- lngFileNumA = FreeFile
- tmpStep = &HC + 1
- Dim lngIndexB As Long
- Open strFilePath For Binary As #lngFileNumA
-
- For lngIndexB = 0 To 1064
- Get #lngFileNumA, tmpStep, strPathLen
- ReDim strPathChar(1 To strPathLen)
- tmpStep = tmpStep + 4
- Get #lngFileNumA, tmpStep, strPathChar()
- strResPath = ""
- For lngIndex = 1 To strPathLen
- strResPath = strResPath & strPathChar(lngIndex)
- Next
-
- tmpStep = tmpStep + Len(strResPath) + 2
- Get #lngFileNumA, tmpStep, intSize
-
- If intSize = 0 Then
- tmpStep = tmpStep - 2
- Get #lngFileNumA, tmpStep, intSize
-
- If intSize < 0 Then
- lngSize = 65536 + intSize
- ReDim bData(1 To lngSize)
- tmpStep = tmpStep + 4
- Get #lngFileNumA, tmpStep, bData()
-
- tmpStep = tmpStep + lngSize
-
- Else
-
- ReDim bData(1 To intSize)
- tmpStep = tmpStep + 4
- Get #lngFileNumA, tmpStep, bData()
-
- tmpStep = tmpStep + intSize
-
- End If
- Else
- tmpStep = tmpStep - 2
- Get #lngFileNumA, tmpStep, lngSize
- ReDim bData(1 To lngSize)
- tmpStep = tmpStep + 4
- Get #lngFileNumA, tmpStep, bData()
- tmpStep = tmpStep + lngSize
- End If
-
- lngFileNumB = FreeFile
- CreateNewDirectory (Mid$(strResPath, 1, InStrRev(strResPath, "\")))
- strFilePath = strResPath
- Open strFilePath For Binary As #lngFileNumB
- Put #lngFileNumB, 1, bData()
- Close #lngFileNumB
- Next lngIndexB
- Close #lngFileNumA
- End Sub
复制代码 [/hide] |