分析教程内有QQ邮件 已经过期+ R+ Z4 l6 C6 ~& L- [9 W
等FTP好了我再上传
$ @" Q8 U& {+ K8 M# |6 S7 N
( I4 Z P/ t: i. E! ]
) F4 P3 s0 v# D+ H/ I上传完毕
: Y# b2 A& W5 w1 E Rftp好像上传了看不到下载目录..或许我的账号有误吧& e, k& S7 p/ H1 u [# W- a
1 {) S. D1 H) x: A. R写了那么久,值得鼓励一下吧~回帖吧~
. C) G- R/ [, b1 P
( _" Q [$ c) L刚刚发完就给下载了...不回帖支持~不厚道么~内附解包代码
' e5 G& C" N1 _5 r2 J6 h- l
6 [; l* {: o( V/ U* l7 g2 g0 t" y9 `: L7 }( ? D& X
" `1 a) _' L I; t4 e
5 Y6 F" N- R* |: V0 f
" Y3 B! L8 U" l5 w3 d* }$ n& j$ X6 [0 i9 P. z- U
[strike]QQmail上传ing...[/strike]
+ v. t3 X2 g1 V1 w: ^: L$ p8 t
; ~( G+ v, [% u2 M ^教程分上下,A是准备工作和废话
! @: n$ o# ?1 u- I" d7 u& j# A B是废话+操作
0 j: ~# c, j4 Y) g4 S+ V# W2 U5 W
水品有限...所以东西自然也有限,高手自觉略过吧.....% z7 x. D) o: y% N8 `9 B
" ~4 W, s% Q0 Y" ~主要代码拷贝到这里了,那个俺学习的时候,给我踩踩blog...3 O* |. u% m @- _/ H
; m) {8 s2 Y* h. p$ a
教程补充: # O( o& M8 |% [' `' E
这个只是一个demo而已..还有太多地方该去改进,这个活交给聪明的你了。 # j/ O) e; \- U0 a+ k. k
本来还有一个小工具的,可是呢,受限于信用问题,已经投稿便不能发了。。。, ]/ D# b, g% F& Y
操作文件C是王道,但是使用其他工具也没有问题的,甚至是轻量脚本php1 _; c: o- i: i/ f+ ~
如果你也用VB6或者VBNET可以考虑FSO,[其实和GET PUT一样的]
5 J0 ~4 V" @' R3 p! x2 z5 [% I d例子中没有告诉大家要注意资源的使用,比如初始化[虽然我有做]和
, A7 l1 V4 O& e& T$ q: B注销使用了的变量,我放到程序结束的时候了。8 @9 q }" c& {1 r: I
程序中没有检验传入数据,请注意,那个提取我检验过了,所以就删除掉了,
; k" Y' F! s Q, G# a 那个indexB,的范围改成图片的数量就可以了,估计是手误吧... * e& e* D8 T2 o: T( z2 Y5 f
前面几个字符的处理其实也简单,不停的更换前面的那个头部结构声明,然后读取+ N) Y6 }1 E) D+ e }6 M
看看能和什么匹配就好,或者你就跟踪程序操作文件吧,在读取文件的API处下断& X, p \' a9 \. t
我去学习了,所以去踩博客吧~呵呵~* D! D7 i; j$ f' Y# {# ]/ v
- 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] |