亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? comp_group64.bas

?? vb寫的..文件打包..壓縮解壓..加密解密
?? BAS
字號:
Attribute VB_Name = "Comp_Group64"


Option Explicit

'This is a 1 run method but we have to keep the whole contents
'in memory until some variables are saved wich are needed bij the decompressor

'This is a grouping method
'it try to find follower bytes with a maximum range of 64
'if it found such a group it will subtract the lowest value
'and then store the lower 6 bits of the follower bytes
'in this way we can get a maximum compression of 25%
'This is excluded the header of the follower bytes
'this method works best after a move to front coder

Private OutPos As Long              'invoeg positie voor de output array
Private OutBitCount As Integer
Private OutByteBuf As Byte
Private ReadBitPos As Integer
Private NumExtBits(7) As Byte
  
Private Sub Init_Grouping()
    OutPos = 0
    OutBitCount = 0
    OutByteBuf = 0
    ReadBitPos = 0
    NumExtBits(0) = 3       '<8
    NumExtBits(1) = 3       '<16
    NumExtBits(2) = 4       '<32
    NumExtBits(3) = 5       '<64
    NumExtBits(4) = 6       '<128
    NumExtBits(5) = 7       '<256
    NumExtBits(6) = 8       '<512
    NumExtBits(7) = 16      ' de rest
End Sub

Public Sub Compress_Grouping(ByteArray() As Byte)
    Const MinBytes As Integer = 12  'minimum nuber of follower bytes needed to get compression
    Dim OutStream() As Byte         'The output array
    Dim BeginGroup As Long          'start positie of the groep
    Dim NumInGroup As Long
    Dim LowInGroup As Integer       'Lowest value in the groep
    Dim HighInGroup As Integer      'Highest value in the groep
    Dim Char As Integer
    Dim MaxDiff As Boolean
    Dim X As Long
    Dim Y As Long
    Dim TotFileLen As Long
    Dim NoCompress As Long
    Dim StartNocompress As Long
    TotFileLen = UBound(ByteArray)
    ReDim OutStream(TotFileLen + (TotFileLen / 7))  'in het slechtste geval
    BeginGroup = 0
    NumInGroup = 0
    Call Init_Grouping
    Do While BeginGroup + NumInGroup <= TotFileLen
        LowInGroup = ByteArray(BeginGroup + NumInGroup)
        HighInGroup = ByteArray(BeginGroup + NumInGroup)
        MaxDiff = False
        Do While MaxDiff = False
            NumInGroup = NumInGroup + 1
            If BeginGroup + NumInGroup > TotFileLen Then Exit Do
            Char = ByteArray(BeginGroup + NumInGroup)
            If Char < LowInGroup Then
                If HighInGroup - Char > 63 Then
                    MaxDiff = True
                Else
                    LowInGroup = Char
                End If
            ElseIf Char > HighInGroup Then
                If Char - LowInGroup > 63 Then
                    MaxDiff = True
                Else
                    HighInGroup = Char
                End If
            End If
        Loop
        NumInGroup = NumInGroup - 1
        If NumInGroup >= MinBytes Then               'we kunnen gaan splitten
            If NoCompress > 0 Then
'if we cant compress, store the header of the literal bytes
                Call AddGroupCodeToStream(OutStream, NoCompress, False)
'and store the literal bytes themself
                For X = StartNocompress To StartNocompress + NoCompress - 1
                    Call AddBitsToStream(OutStream, CLng(ByteArray(X)), 8)
                Next
                NoCompress = 0
            End If
'here whe're gone store the header of the compressed bytes
            Call AddGroupCodeToStream(OutStream, NumInGroup + 1, True)
'lets store the lowest value of the group
            Call AddBitsToStream(OutStream, CLng(LowInGroup), 8)
'and here whe're subtract the lowest value from the group and
'store bits 0 to 5 into the output stream
            For X = BeginGroup To BeginGroup + NumInGroup
                Call AddBitsToStream(OutStream, CLng(ByteArray(X) - LowInGroup), 6)
            Next
            BeginGroup = BeginGroup + NumInGroup + 1
        Else
            NoCompress = NoCompress + 1
            If NoCompress = 1 Then StartNocompress = BeginGroup 'Lets hold the pointer
            BeginGroup = BeginGroup + 1
        End If
        NumInGroup = 0
    Loop
'lets see if whe have had all the bytes
    If NoCompress > 0 Then
'if not, lets store the last bytes
        Call AddGroupCodeToStream(OutStream, NoCompress, False)
        For X = StartNocompress To StartNocompress + NoCompress - 1
            Call AddBitsToStream(OutStream, CLng(ByteArray(X)), 8)
        Next
        NoCompress = 0
    End If
'see if there are some bits leftover
    If OutBitCount < 8 Then
        Do While OutBitCount < 8
            OutByteBuf = OutByteBuf * 2
            OutBitCount = OutBitCount + 1
        Loop
        OutStream(OutPos) = OutByteBuf: OutPos = OutPos + 1
    End If
    OutPos = OutPos - 1
    ReDim ByteArray(OutPos + 4)
    ByteArray(0) = Int(TotFileLen / &H1000000) And &HFF
    ByteArray(1) = Int(TotFileLen / &H10000) And &HFF
    ByteArray(2) = Int(TotFileLen / &H100) And &HFF
    ByteArray(3) = TotFileLen And &HFF
    Call CopyMem(ByteArray(4), OutStream(0), OutPos + 1)
End Sub

Private Sub AddGroupCodeToStream(ToStream() As Byte, Number As Long, IsPacked As Boolean)
    Dim NumVal As Byte
    Dim X As Long
    OutByteBuf = OutByteBuf * 2 + (-1 * IsPacked)
    OutBitCount = OutBitCount + 1
    If OutBitCount = 8 Then: ToStream(OutPos) = OutByteBuf: OutBitCount = 0: OutByteBuf = 0: OutPos = OutPos + 1
    Select Case Number
    Case Is < 8
        NumVal = 0
    Case Is < 16
        NumVal = 1
    Case Is < 32
        NumVal = 2
    Case Is < 64
        NumVal = 3
    Case Is < 128
        NumVal = 4
    Case Is < 256
        NumVal = 5
    Case Is < 512
        NumVal = 6
    Case Else
        NumVal = 7
    End Select
'plaats 3 extra bits om de groote van het volgende getal aan te geven
    For X = 2 To 0 Step -1
        OutByteBuf = OutByteBuf * 2 + (-1 * ((NumVal And 2 ^ X) > 0))
        OutBitCount = OutBitCount + 1
        If OutBitCount = 8 Then: ToStream(OutPos) = OutByteBuf: OutBitCount = 0: OutByteBuf = 0: OutPos = OutPos + 1
    Next
'plaats het aantal nummer in de groep
    For X = NumExtBits(NumVal) - 1 To 0 Step -1
        OutByteBuf = OutByteBuf * 2 + (-1 * ((Number And 2 ^ X) > 0))
        OutBitCount = OutBitCount + 1
        If OutBitCount = 8 Then: ToStream(OutPos) = OutByteBuf: OutBitCount = 0: OutByteBuf = 0: OutPos = OutPos + 1
    Next
End Sub

Private Sub AddBitsToStream(ToStream() As Byte, Number As Long, Numbits As Integer)
    Dim X As Long
    For X = Numbits - 1 To 0 Step -1
        OutByteBuf = OutByteBuf * 2 + (-1 * ((Number And 2 ^ X) > 0))
        OutBitCount = OutBitCount + 1
        If OutBitCount = 8 Then: ToStream(OutPos) = OutByteBuf: OutBitCount = 0: OutByteBuf = 0: OutPos = OutPos + 1
    Next
End Sub

Public Sub DeCompress_Grouping(ByteArray() As Byte)
    Dim TotFileLen As Long
    Dim OutStream() As Byte         'The output array
    Dim InpPos As Long
    Dim NewPos As Long
    Dim PackedOrNot As Byte
    Dim NumBytes As Long
    Dim LowInGroup As Integer       'Lowest value in the group
    Dim NumVal As Byte
    Dim X As Integer
    For X = 0 To 3
        TotFileLen = CLng(TotFileLen) * 256
        TotFileLen = TotFileLen + ByteArray(X)
    Next
    ReDim OutStream(TotFileLen)
    InpPos = 4
    NewPos = 0
    Call Init_Grouping
    Do While NewPos < TotFileLen
        PackedOrNot = ReadBitsFromArray(ByteArray, InpPos, 1)
        NumVal = ReadBitsFromArray(ByteArray, InpPos, 3)
        NumBytes = ReadBitsFromArray(ByteArray, InpPos, CInt(NumExtBits(NumVal)))
        If NumVal > 0 And NumVal < 7 Then
            NumBytes = NumBytes Or 2 ^ (NumVal + 2)
        End If
        If PackedOrNot = 0 Then
            For X = 1 To NumBytes       'the bytes aren't Grouped
                OutStream(NewPos) = ReadBitsFromArray(ByteArray, InpPos, 8)
                NewPos = NewPos + 1
            Next
        Else
            LowInGroup = ReadBitsFromArray(ByteArray, InpPos, 8)
            For X = 1 To NumBytes       'the bytes are Grouped
                OutStream(NewPos) = ReadBitsFromArray(ByteArray, InpPos, 6) + LowInGroup
                NewPos = NewPos + 1
            Next
        End If
    Loop
    ReDim ByteArray(TotFileLen)
    Call CopyMem(ByteArray(0), OutStream(0), TotFileLen + 1)
End Sub

Private Function ReadBitsFromArray(FromArray() As Byte, FromPos As Long, Numbits As Integer) As Long
    Dim X As Integer
    Dim Temp As Long
    For X = 1 To Numbits
        Temp = Temp * 2 + (-1 * ((FromArray(FromPos) And 2 ^ (7 - ReadBitPos)) > 0))
        ReadBitPos = ReadBitPos + 1
        If ReadBitPos = 8 Then
            If FromPos + 1 > UBound(FromArray) Then
                Do While X < Numbits
                    Temp = Temp * 2
                    X = X + 1
                Loop
                FromPos = FromPos + 1
                Exit For
            End If
            FromPos = FromPos + 1
            ReadBitPos = 0
        End If
    Next
    ReadBitsFromArray = Temp
End Function

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品久久久久影院色| 色综合亚洲欧洲| 亚洲欧美日韩在线| 久久这里只有精品视频网| 色女孩综合影院| 国产成人综合精品三级| 青青草一区二区三区| 亚洲欧美日韩国产成人精品影院| www日韩大片| 日韩欧美美女一区二区三区| 91高清视频在线| 成人av免费在线观看| 国产一二精品视频| 男女性色大片免费观看一区二区| 亚洲美女电影在线| 中文字幕精品一区二区精品绿巨人| 日韩免费视频一区| 88在线观看91蜜桃国自产| 在线视频你懂得一区二区三区| 岛国精品在线播放| 激情图区综合网| 久久www免费人成看片高清| 丝袜美腿亚洲一区二区图片| 亚洲欧美另类在线| 亚洲欧洲精品天堂一级| 国产日韩欧美精品一区| 久久精品一区二区三区不卡牛牛 | 欧美激情资源网| 久久这里只有精品首页| 亚洲精品一区二区三区在线观看| 欧美一级片在线观看| 欧美日韩成人综合在线一区二区| 色中色一区二区| 一本大道久久a久久综合| 99久久免费精品| 不卡的电影网站| www.成人在线| 色av成人天堂桃色av| 91美女片黄在线观看91美女| 99国产精品久久久久久久久久| 成人性生交大片| 91网站黄www| 在线亚洲一区二区| 欧美自拍丝袜亚洲| 欧美日韩另类一区| 欧美军同video69gay| 91精品一区二区三区在线观看| 欧美一区二区久久久| 欧美成人欧美edvon| 久久综合网色—综合色88| 久久一二三国产| 国产婷婷色一区二区三区| 国产精品久久久99| 亚洲黄一区二区三区| 天天综合天天做天天综合| 日韩不卡一区二区| 国产综合久久久久久鬼色| 国产精品影音先锋| 91色视频在线| 91麻豆精品国产91久久久资源速度| 日韩区在线观看| 久久久久久久久久久久久久久99 | 亚洲免费电影在线| 日韩在线一区二区三区| 精品在线视频一区| 99久久国产免费看| 欧美日韩一区二区三区在线看| 日韩一区二区在线观看视频| 国产婷婷色一区二区三区四区| 亚洲裸体xxx| 免费观看成人鲁鲁鲁鲁鲁视频| 国产不卡一区视频| 欧美视频在线观看一区| 欧美va亚洲va香蕉在线| 最近日韩中文字幕| 美女一区二区视频| 不卡av免费在线观看| 欧美区视频在线观看| 国产亚洲精品精华液| 亚洲在线免费播放| 久久疯狂做爰流白浆xx| 91在线小视频| 欧美大片在线观看一区二区| 亚洲欧美国产毛片在线| 麻豆久久久久久| 色呦呦日韩精品| 欧美va日韩va| 亚洲高清一区二区三区| 免费看欧美女人艹b| 国产午夜精品一区二区| 色综合一区二区| 26uuu久久天堂性欧美| 日韩理论片网站| 奇米影视7777精品一区二区| 成人av在线一区二区| 日韩免费福利电影在线观看| 国产精品沙发午睡系列990531| 午夜精品福利视频网站| 99久久99久久精品免费观看| 精品福利视频一区二区三区| 亚洲精品美腿丝袜| 国产精品99久久久久久宅男| 91精品国产综合久久福利| 亚洲同性gay激情无套| 国产盗摄一区二区三区| 91精品婷婷国产综合久久| 亚洲精品少妇30p| 国产91在线|亚洲| 欧美电影免费观看高清完整版| 亚洲五月六月丁香激情| 99免费精品在线| 国产欧美日韩精品一区| 老汉av免费一区二区三区| 欧美亚洲国产一区在线观看网站| 国产目拍亚洲精品99久久精品| 久久99国产精品尤物| 欧美疯狂做受xxxx富婆| 亚洲午夜久久久久久久久电影网| 91在线视频观看| 国产精品视频第一区| 粉嫩嫩av羞羞动漫久久久 | 九九视频精品免费| 欧美一级欧美一级在线播放| 亚洲va欧美va国产va天堂影院| 91福利国产成人精品照片| 中文字幕制服丝袜成人av| 国产成人精品www牛牛影视| 久久先锋影音av鲁色资源| 久久久三级国产网站| 久久精品国产**网站演员| 日韩激情视频在线观看| 欧美日韩在线观看一区二区| 亚洲影视资源网| 欧美三级一区二区| 亚洲成人777| 日韩一级二级三级| 久久国产精品免费| 久久久国产午夜精品| 国产91高潮流白浆在线麻豆| 国产欧美精品日韩区二区麻豆天美 | 久久久久成人黄色影片| 国产酒店精品激情| 国产精品久久久久一区二区三区共 | 国产精品二区一区二区aⅴ污介绍| 成人av在线资源网站| 亚洲男同性恋视频| 欧美自拍偷拍午夜视频| 日韩高清在线电影| 精品欧美乱码久久久久久1区2区| 精品一区二区在线视频| 久久影音资源网| 不卡的av在线播放| 亚洲一区二区在线观看视频| 69堂成人精品免费视频| 麻豆国产精品官网| 国产蜜臀97一区二区三区| 一本到一区二区三区| 亚洲 欧美综合在线网络| 日韩西西人体444www| 粉嫩av一区二区三区| 精品国产伦一区二区三区免费 | 国产综合色在线| 精品久久国产字幕高潮| 国产毛片一区二区| 中文成人av在线| 欧美日韩日日摸| 国产精品综合在线视频| 国产精品成人免费精品自在线观看| 色久综合一二码| 日本成人中文字幕在线视频| 国产日韩欧美电影| 欧美三级中文字| 国产精品中文字幕一区二区三区| 亚洲精品日韩专区silk| 日韩精品一区国产麻豆| 97久久精品人人澡人人爽| 蜜臀av性久久久久av蜜臀妖精| 国产精品入口麻豆九色| 3atv一区二区三区| 99久久99久久久精品齐齐| 水野朝阳av一区二区三区| 国产色婷婷亚洲99精品小说| 欧美日韩你懂得| 成人午夜视频在线观看| 丝袜亚洲另类欧美| 成人欧美一区二区三区黑人麻豆 | 国产日韩av一区| 欧美精品第一页| 97国产一区二区| 国模冰冰炮一区二区| 久久精品免费在线观看| 一本色道久久综合亚洲91| 午夜精品久久久久| 中文字幕+乱码+中文字幕一区| 欧美色综合网站| 成人v精品蜜桃久久一区| 日韩va亚洲va欧美va久久| 亚洲免费大片在线观看| 国产欧美日韩在线| 日韩欧美中文一区|