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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? comp_group64.bas

?? 20多種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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产激情一区二区三区蜜月| 亚洲成人激情自拍| 日韩不卡一二三区| 欧美怡红院视频| 久久久美女毛片| 毛片av一区二区| 欧美日韩亚洲综合一区二区三区| 亚洲欧美中日韩| 91免费看视频| 亚洲人成网站精品片在线观看| 国产98色在线|日韩| 日本一区二区三级电影在线观看| 国产成人精品亚洲777人妖| 精品美女一区二区三区| 免费高清不卡av| 国产欧美日韩视频在线观看| 国产99久久久久久免费看农村| 久久久久久99久久久精品网站| 国产一区二区三区美女| 国产精品视频你懂的| gogogo免费视频观看亚洲一| ㊣最新国产の精品bt伙计久久| 成人av在线播放网站| 亚洲在线一区二区三区| 日韩一级黄色片| 成人av资源在线观看| 亚洲一区二区三区小说| 精品国产百合女同互慰| 91网页版在线| 精品在线播放免费| 亚洲免费在线看| 26uuu国产一区二区三区 | 国产精品久久久久一区二区三区共 | 一区二区三区四区不卡视频| 欧美mv日韩mv国产网站app| 97超碰欧美中文字幕| 精品综合免费视频观看| 亚洲中国最大av网站| 中文字幕制服丝袜成人av | 不卡的av电影在线观看| 欧美不卡一区二区三区| 亚洲国产精品成人久久综合一区| 成人av电影免费在线播放| 视频一区欧美精品| 亚洲乱码中文字幕| 日本一区二区三区国色天香 | 91在线观看地址| 国产精品18久久久久| 蜜桃av噜噜一区二区三区小说| 亚洲午夜一区二区| 国产精品嫩草99a| 国产精品久久久久影院色老大| 精品久久人人做人人爽| 日韩情涩欧美日韩视频| 91麻豆精品91久久久久同性| 欧美日韩在线不卡| 欧美午夜寂寞影院| 欧美群妇大交群中文字幕| 91日韩精品一区| 欧美性猛片aaaaaaa做受| 色拍拍在线精品视频8848| 波多野结衣精品在线| 97se亚洲国产综合在线| 91影院在线免费观看| 色综合激情久久| 欧美日韩精品高清| 日韩精品一区二区三区视频播放 | 在线播放91灌醉迷j高跟美女| 欧美色涩在线第一页| 精品久久久久99| 国产精品污www在线观看| 中文字幕亚洲综合久久菠萝蜜| 亚洲资源中文字幕| 精品亚洲国产成人av制服丝袜 | 亚洲男人天堂av网| 日韩—二三区免费观看av| 国产麻豆视频精品| 色综合天天综合狠狠| 精品久久久久久久一区二区蜜臀| 国产精品你懂的在线欣赏| 亚洲电影一级片| 成人app软件下载大全免费| 欧美性大战久久久久久久蜜臀 | 欧美系列一区二区| 日韩精品在线一区| 亚洲成人免费av| 94色蜜桃网一区二区三区| 精品电影一区二区| 亚洲一二三四在线观看| 国产98色在线|日韩| 欧美一区二区三区免费大片| 亚洲天堂精品视频| 国产福利不卡视频| 日韩视频不卡中文| 午夜精品久久久久久久蜜桃app| 国产黄人亚洲片| 久久久午夜电影| 国产成人小视频| 久久亚洲春色中文字幕久久久| 蜜桃av一区二区三区| 欧美一区二区视频在线观看| 一区二区久久久久| 色偷偷久久一区二区三区| 精品美女一区二区| 国产精品进线69影院| 国产精品中文字幕欧美| 精品久久久久久综合日本欧美| 天堂一区二区在线| 欧美一区二区三区啪啪| 午夜精品视频一区| 91精品国产aⅴ一区二区| 免费在线一区观看| 久久久另类综合| 成人99免费视频| 亚洲精品亚洲人成人网在线播放| 在线看日本不卡| 日韩国产欧美三级| 国产喂奶挤奶一区二区三区| 粉嫩av一区二区三区| 亚洲欧美福利一区二区| 91麻豆精品国产| 成人性色生活片| 亚洲一区二区美女| 久久综合色8888| 99精品欧美一区| 美脚の诱脚舐め脚责91| 国产精品久久久爽爽爽麻豆色哟哟 | 久久国产精品99精品国产| 国产欧美日韩精品一区| 欧美浪妇xxxx高跟鞋交| 成人午夜短视频| 日韩成人免费电影| 亚洲欧美另类久久久精品| 精品久久五月天| 欧美久久久久久久久久| 成人综合婷婷国产精品久久蜜臀| 午夜精品久久久久久久99樱桃| 国产欧美精品日韩区二区麻豆天美 | 日韩一区中文字幕| 26uuu国产日韩综合| 在线播放视频一区| 色爱区综合激月婷婷| 丁香婷婷综合激情五月色| 日本伊人色综合网| 日韩激情中文字幕| 亚洲制服丝袜av| 亚洲国产一区视频| 亚洲图片自拍偷拍| 亚洲一区二区在线免费看| 亚洲女与黑人做爰| 一个色综合av| 亚洲一区免费在线观看| 亚洲一区二区三区四区的 | 日韩伦理免费电影| 国产欧美一区二区精品忘忧草| 久久视频一区二区| 精品播放一区二区| 国产无人区一区二区三区| 中文无字幕一区二区三区| 国产精品狼人久久影院观看方式| 久久精品水蜜桃av综合天堂| 欧美高清在线精品一区| 国产精品乱码人人做人人爱| 国产日韩综合av| 亚洲精品欧美专区| 亚洲大片精品永久免费| 国产天堂亚洲国产碰碰| 亚洲国产一区在线观看| 蜜桃av噜噜一区二区三区小说| 国产一区二区三区av电影| a在线播放不卡| 欧美精品亚洲二区| 国产精品色在线| 亚洲福利国产精品| 99精品视频在线播放观看| 欧美日韩成人激情| 中国av一区二区三区| 日日夜夜精品视频免费| 丁香六月久久综合狠狠色| 欧美日韩亚洲国产综合| 国产精品成人免费精品自在线观看 | 亚洲国产aⅴ成人精品无吗| 麻豆国产91在线播放| 欧美中文字幕一区| 国产精品伦理在线| 国产精品久久久久影视| 国产精品影视在线观看| 欧美精品国产精品| 亚洲福利视频一区| 91美女片黄在线观看91美女| 久久精品欧美日韩| 国产一本一道久久香蕉| 日韩欧美中文字幕一区| 午夜久久久影院| 欧美卡1卡2卡| 日本美女视频一区二区| 日韩三区在线观看| 美女视频黄 久久| 日韩精品影音先锋| 国产麻豆视频一区二区|