level 7
暴牙归来
楼主
Imports System.Runtime.InteropServices
Module 解压缩
Public Enum enumzLibResult
Z_NEED_DICT = 2
Z_STREAM_END = 1
Z_OK = 0
Z_ERRNO = -1
Z_STREAM_ERROR = -2
Z_DATA_ERROR = -3
Z_MEM_ERROR = -4
Z_BUF_ERROR = -5
Z_VERSION_ERROR = -6
Exception_Raised = -9
End Enum
Public Structure struczLibResult
Public intResult As enumzLibResult
Public byteResult As Byte()
Public excResult As Exception
End Structure
Public Function ZIP(ByVal bySource As Byte()) As struczLibResult
Dim strucReturn As New struczLibResult
Dim intOrigSize As Integer
Dim intCompSize As Integer
Try
intOrigSize = bySource.Length
Dim BLen() As Byte = BitConverter.GetBytes(intOrigSize)
Dim n As Integer
ReDim strucReturn.byteResult(Convert.ToInt32(intOrigSize + (intOrigSize * 0.01) + 12))
ReDim Preserve strucReturn.byteResult(intCompSize + 4)
For n = 1 To 4
strucReturn.byteResult(intCompSize + n) = BLen(n - 1)
Next
Return strucReturn
Catch ex As Exception
strucReturn.intResult = enumzLibResult.Exception_Raised
strucReturn.excResult = ex
Return strucReturn
Finally
Erase strucReturn.byteResult
strucReturn = Nothing
End Try
End Function
Public Function unZIP(ByVal bySource As Byte()) As struczLibResult
Dim intOrigSize As Integer = bySource.Length - 4
Dim n As Integer
Dim BLen(3) As Byte
For n = 0 To 3
BLen(n) = bySource(intOrigSize + n)
Next
intOrigSize = BitConverter.ToInt32(BLen, 0)
MsgBox(intOrigSize)
Dim strucReturn As New struczLibResult
Try
ReDim strucReturn.byteResult(intOrigSize - 1)
Return strucReturn
Catch ex As Exception
strucReturn.intResult = enumzLibResult.Exception_Raised
strucReturn.excResult = ex
Return strucReturn
Finally
Erase strucReturn.byteResult
strucReturn = Nothing
End Try
End Function
End Module
2016年05月26日 04点05分
1
Module 解压缩
Public Enum enumzLibResult
Z_NEED_DICT = 2
Z_STREAM_END = 1
Z_OK = 0
Z_ERRNO = -1
Z_STREAM_ERROR = -2
Z_DATA_ERROR = -3
Z_MEM_ERROR = -4
Z_BUF_ERROR = -5
Z_VERSION_ERROR = -6
Exception_Raised = -9
End Enum
Public Structure struczLibResult
Public intResult As enumzLibResult
Public byteResult As Byte()
Public excResult As Exception
End Structure
Public Function ZIP(ByVal bySource As Byte()) As struczLibResult
Dim strucReturn As New struczLibResult
Dim intOrigSize As Integer
Dim intCompSize As Integer
Try
intOrigSize = bySource.Length
Dim BLen() As Byte = BitConverter.GetBytes(intOrigSize)
Dim n As Integer
ReDim strucReturn.byteResult(Convert.ToInt32(intOrigSize + (intOrigSize * 0.01) + 12))
ReDim Preserve strucReturn.byteResult(intCompSize + 4)
For n = 1 To 4
strucReturn.byteResult(intCompSize + n) = BLen(n - 1)
Next
Return strucReturn
Catch ex As Exception
strucReturn.intResult = enumzLibResult.Exception_Raised
strucReturn.excResult = ex
Return strucReturn
Finally
Erase strucReturn.byteResult
strucReturn = Nothing
End Try
End Function
Public Function unZIP(ByVal bySource As Byte()) As struczLibResult
Dim intOrigSize As Integer = bySource.Length - 4
Dim n As Integer
Dim BLen(3) As Byte
For n = 0 To 3
BLen(n) = bySource(intOrigSize + n)
Next
intOrigSize = BitConverter.ToInt32(BLen, 0)
MsgBox(intOrigSize)
Dim strucReturn As New struczLibResult
Try
ReDim strucReturn.byteResult(intOrigSize - 1)
Return strucReturn
Catch ex As Exception
strucReturn.intResult = enumzLibResult.Exception_Raised
strucReturn.excResult = ex
Return strucReturn
Finally
Erase strucReturn.byteResult
strucReturn = Nothing
End Try
End Function
End Module
