分析教程内有QQ邮件 已经过期: W h: V6 P3 _3 X: i' i9 X
等FTP好了我再上传8 F0 S) ?8 j6 D" `8 Y% B. E# n
: K- v* F( _ E# Q' ^
3 X6 x; N. {1 O4 l, R- h2 ^上传完毕
4 E3 t1 S! x% }) oftp好像上传了看不到下载目录..或许我的账号有误吧& p5 M8 z' u( p' q! h: h
" q' X7 i. R3 \' I# }& B6 k, q$ k" \写了那么久,值得鼓励一下吧~回帖吧~! p' |# Y" `; i1 A
* J! \$ r0 Z7 x刚刚发完就给下载了...不回帖支持~不厚道么~内附解包代码
v7 D% w& y1 [* K4 G: F$ t3 E; F
/ O5 P% T: x6 m1 S# x0 W; S
& y+ R X7 r( D9 i) Q1 D6 @: S4 I# ^- O: C% Q6 C
( V" N( Y' Q) y0 `& i* ]' X/ ?2 ^! J6 V, C5 X' t; N
[strike]QQmail上传ing...[/strike]
( @* O! b3 T% M- o1 t2 N* u5 `
! X4 y( g3 H1 E) K7 {教程分上下,A是准备工作和废话
, |* ^$ J8 O- N7 v B是废话+操作4 |3 Y9 q" s$ p' U# w1 F' Y: j2 {
4 E3 Q; N2 T( }6 e. g5 @9 c8 G3 D水品有限...所以东西自然也有限,高手自觉略过吧.....
5 M9 m9 M. k9 o3 q; t t5 A3 y. X7 u' O: ]+ d* T/ C
主要代码拷贝到这里了,那个俺学习的时候,给我踩踩blog...
# ]- F ^0 f4 ]; a% B( L
& B! l1 a, ? J s教程补充: # l/ m* _+ [) d( J
这个只是一个demo而已..还有太多地方该去改进,这个活交给聪明的你了。
+ T* h% f* [: }本来还有一个小工具的,可是呢,受限于信用问题,已经投稿便不能发了。。。
5 E( L5 N& S _$ u4 w操作文件C是王道,但是使用其他工具也没有问题的,甚至是轻量脚本php9 _ t+ R- T" _9 e
如果你也用VB6或者VBNET可以考虑FSO,[其实和GET PUT一样的]5 l; c N- l+ Z! {
例子中没有告诉大家要注意资源的使用,比如初始化[虽然我有做]和; Q) i1 q' A3 `* o
注销使用了的变量,我放到程序结束的时候了。
, v6 H& L1 K1 M q) T' ^5 t程序中没有检验传入数据,请注意,那个提取我检验过了,所以就删除掉了,
8 S% Q; d( ]% S/ d 那个indexB,的范围改成图片的数量就可以了,估计是手误吧...
! a+ S T- q1 E0 J 前面几个字符的处理其实也简单,不停的更换前面的那个头部结构声明,然后读取
4 I& L6 ?. u4 u. d6 | |看看能和什么匹配就好,或者你就跟踪程序操作文件吧,在读取文件的API处下断
# k/ v2 Q u, H" t; q( |5 H3 m我去学习了,所以去踩博客吧~呵呵~ k. x. }" m: ?. y5 @
- 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] |