一段解压算法代码,求对应的压缩代码,谢谢!
高手来帮帮忙,谢谢!
Sub uncomp(ByVal ifile As String, ByVal ofile As String)
Dim dat(65) As Byte
Dim dat2(1) As Byte
Dim compdat As Long
Dim c As Long
Dim olen As Long
Dim ilen As Byte
c = 256
If Dir(ifile) = "" Then
Exit Sub
End If
If Dir(ofile) <> "" Then
kill(ofile)
End If
Open ifile For Binary As #1
Open ofile For Binary As #2
olen = 0
For i = 1 To LOF(1)
Get #1, i, dat
'从ifile读入i个字节进入dat
ilen = 0
compdat = dat(0) + dat(1) * c
ilen = ilen + 2
For t = 0 To 15
If compdat >= 32768 Then
ls1 = Int(dat(ilen + 1) / 8)
ls2 = (dat(ilen + 1) Mod 8) * c + dat(ilen)
ls2 = ls2 * 2
ilen = ilen + 2
If ls1 = 0 Then
ls1 = dat(ilen + 1) * c + dat(ilen)
ilen = ilen + 2
End If
For z = 1 To ls1
If ls2 > olen Then
dat2(0) = 0
dat2(1) = 0
Else
Get #2, olen - ls2 + 1, dat2
End If
Put #2, olen + 1, dat2
olen = olen + 2
Next z
Else
Put #2, olen + 1, dat(ilen)
Put #2, olen + 2, dat(ilen + 1)
olen = olen + 2
ilen = ilen + 2
End If
compdat = (compdat Mod 32768) * 2
Next t
i = i + ilen - 1
Next i
Close #1
Close #2
End Sub