分析教程内有QQ邮件 已经过期
. W0 U: _4 \: h1 b/ s; k; i等FTP好了我再上传/ [. @4 h1 C o/ \* T
; M) X* H! R3 c
9 Y' y) b) `0 F0 T上传完毕
R% \* `: _/ f. yftp好像上传了看不到下载目录..或许我的账号有误吧
, p+ Y% H6 c3 ~0 W" F- R
. T9 b- N# y ^% c写了那么久,值得鼓励一下吧~回帖吧~
4 p3 G/ q' j* f
" T( u& F3 C) s6 e O- M9 y刚刚发完就给下载了...不回帖支持~不厚道么~内附解包代码2 X/ K2 {' M! s; g
}$ W0 d3 i" X" w7 {( b+ \2 u- M& D p3 z
6 `; ] F2 d; ?' C+ \0 ]9 Z2 m9 D( K# p4 Z" V! R% f9 @4 V4 P: z' {7 Q1 J
( p3 i1 @6 p" A J0 f
+ c- k# c" Q) z- g[strike]QQmail上传ing...[/strike]
3 q/ M& @. r4 Z: z9 j5 H1 M2 F1 X! G3 k9 X: M, u$ K _
教程分上下,A是准备工作和废话. g& Z7 w" K) Y, K: Q
B是废话+操作9 P% \' G; p3 a; v4 ^6 a: ^* T: z
]! [5 J: _8 d水品有限...所以东西自然也有限,高手自觉略过吧.....: F# I& w1 ^+ Z4 C. v
3 K5 J' `5 K3 s4 } D: p主要代码拷贝到这里了,那个俺学习的时候,给我踩踩blog...# ?, X V4 g5 T8 `) g! G) G
8 p3 W. \/ Q% R( e' k教程补充:
* t1 q& {. M0 k s这个只是一个demo而已..还有太多地方该去改进,这个活交给聪明的你了。
" y3 A' _" N8 l7 i `( ~7 C I. Q* f本来还有一个小工具的,可是呢,受限于信用问题,已经投稿便不能发了。。。
' c) m5 B! ^" f操作文件C是王道,但是使用其他工具也没有问题的,甚至是轻量脚本php( {. Q' |4 P2 F4 `+ O5 @
如果你也用VB6或者VBNET可以考虑FSO,[其实和GET PUT一样的]) C, q( W) T1 A) C" [4 S( O
例子中没有告诉大家要注意资源的使用,比如初始化[虽然我有做]和
- U5 M" }$ l5 C: ]+ v8 Y* Q. I1 z注销使用了的变量,我放到程序结束的时候了。7 Q" e9 [2 R o3 L$ Z& b
程序中没有检验传入数据,请注意,那个提取我检验过了,所以就删除掉了,
! X7 Y' \4 |, b 那个indexB,的范围改成图片的数量就可以了,估计是手误吧... Y# ?$ E+ c! {- x
前面几个字符的处理其实也简单,不停的更换前面的那个头部结构声明,然后读取/ z. Z# _2 H' X; M, A0 |0 ^
看看能和什么匹配就好,或者你就跟踪程序操作文件吧,在读取文件的API处下断9 X! B$ h0 I* R% A* ?; ^
我去学习了,所以去踩博客吧~呵呵~
( u( Z- m* }' M) x' c- 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] |