分析教程内有QQ邮件 已经过期; y- ?* w S( f
等FTP好了我再上传
" l1 h5 Z6 O7 A1 m, Y5 E
% V. u% O, g/ f) K2 x, b; n" G: g$ @. d
上传完毕5 _6 R& ~; k. {1 I' i5 i0 t
ftp好像上传了看不到下载目录..或许我的账号有误吧2 c; v& Q& } M1 z
3 h* N7 B; z7 J9 U写了那么久,值得鼓励一下吧~回帖吧~
+ P# ~# {( E% D+ }1 ?, Y6 D: F" S' a3 I7 N9 N8 P8 W' u
刚刚发完就给下载了...不回帖支持~不厚道么~内附解包代码0 ?5 d" h$ Z, ^# `9 Q
# S- ?6 R: x7 N& M9 u2 o
# j3 C3 ^* S7 n' [5 T0 ]+ j
! a( p: ^6 j: z# t# S' s
% C, x9 U7 A$ p. G4 z/ ]% Y1 K+ C+ j* X) u- x7 u- F& `7 z7 v8 G
. ^1 ?' b9 P7 Q/ }/ S+ G8 @# a[strike]QQmail上传ing...[/strike]" X& i; P5 ^5 ]2 z5 i S
& {! t- o" w+ A8 V4 O* U1 B9 O教程分上下,A是准备工作和废话
8 h, Q5 Y% m e9 ?/ v7 X B是废话+操作
- ~9 G8 E3 B. g% m3 s2 Q+ e8 f8 y" R" p" G7 i6 o
水品有限...所以东西自然也有限,高手自觉略过吧.....& F+ T9 { \) T; d K
- V s- C2 u+ e$ {( ?主要代码拷贝到这里了,那个俺学习的时候,给我踩踩blog...
) k; q9 b8 g/ k% L: k' t' `( Z- T9 F t
教程补充: 3 c$ A, j% U# d5 a* C2 u8 U
这个只是一个demo而已..还有太多地方该去改进,这个活交给聪明的你了。 / k/ w" X8 U: `* m4 ?( M
本来还有一个小工具的,可是呢,受限于信用问题,已经投稿便不能发了。。。% n8 N0 A$ y* d8 q* ?: G# m4 U! T
操作文件C是王道,但是使用其他工具也没有问题的,甚至是轻量脚本php
; r% X% W: v0 @1 g. r+ s! @如果你也用VB6或者VBNET可以考虑FSO,[其实和GET PUT一样的]- |) W4 n. _; h; m0 J; t
例子中没有告诉大家要注意资源的使用,比如初始化[虽然我有做]和" V; ~* Z4 R3 v4 X
注销使用了的变量,我放到程序结束的时候了。; O- B. }: e' g1 Q/ M0 M
程序中没有检验传入数据,请注意,那个提取我检验过了,所以就删除掉了,
$ L. w) T- f; M' N% p2 R 那个indexB,的范围改成图片的数量就可以了,估计是手误吧... - O) ^1 P3 ]" o+ _
前面几个字符的处理其实也简单,不停的更换前面的那个头部结构声明,然后读取
( g/ T$ ]+ p" [看看能和什么匹配就好,或者你就跟踪程序操作文件吧,在读取文件的API处下断5 ]9 S/ r- @1 S" U# I
我去学习了,所以去踩博客吧~呵呵~
2 Y# L' o& s+ } f" p) e- 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] |