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

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

?? comp_group64.bas

?? 目前程序中使用的多種數法的源代碼,帶加解密例子
?? 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 = 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一区二区三区免费野_久草精品视频
精品国产91久久久久久久妲己 | 日韩综合小视频| 奇米精品一区二区三区在线观看一| 国产精品99久久久久久似苏梦涵 | 亚洲欧美aⅴ...| 狠狠网亚洲精品| 日本高清无吗v一区| 久久人人爽人人爽| 日韩综合小视频| 日本国产一区二区| 国产欧美日韩精品在线| 乱一区二区av| 欧美日韩高清一区二区不卡| 欧美国产精品中文字幕| 蜜桃传媒麻豆第一区在线观看| 日本高清不卡视频| 国产欧美日韩精品一区| 精一区二区三区| 欧美卡1卡2卡| 一区二区三区蜜桃网| 91网站最新地址| 国产欧美日韩麻豆91| 精品无人码麻豆乱码1区2区| 欧美日本在线一区| 亚洲黄色在线视频| 91免费视频观看| 亚洲日穴在线视频| 成年人午夜久久久| 国产精品久久久久久久久免费相片| 国产一区二区中文字幕| 精品国产一区二区三区久久影院 | 91精品国产综合久久久久久久久久 | 成人爱爱电影网址| 国产午夜久久久久| 国产精一区二区三区| 久久久久久99精品| 国产成人免费视频网站高清观看视频| 精品国产91洋老外米糕| 国产在线一区二区| 久久精品人人做人人综合 | 国产精品一二三四区| 精品国产乱码久久| 国内精品久久久久影院薰衣草| 精品精品国产高清一毛片一天堂| 蜜臀av性久久久久蜜臀aⅴ流畅 | 日韩视频国产视频| 日本免费在线视频不卡一不卡二| 欧美日韩国产免费| 青娱乐精品视频| 精品国产91亚洲一区二区三区婷婷| 九一九一国产精品| 国产精品久久久久久妇女6080| www.在线欧美| 日韩影院在线观看| 久久久久久久久久电影| av不卡在线播放| 亚洲h在线观看| 精品999在线播放| 99免费精品在线| 丝袜脚交一区二区| 国产丝袜美腿一区二区三区| 色婷婷av久久久久久久| 日韩电影免费一区| 国产视频不卡一区| 欧美日韩在线观看一区二区 | 日韩欧美激情一区| 成人性生交大片免费| 夜夜亚洲天天久久| 久久综合狠狠综合久久激情| 一本色道久久加勒比精品| 日本不卡视频在线| 日韩理论片在线| 日韩限制级电影在线观看| av在线不卡观看免费观看| 日韩精品免费专区| 中文字幕一区二区三区不卡在线| 欧美一区二区三区四区五区 | 在线观看一区日韩| 国产精选一区二区三区| 一区二区三国产精华液| 久久久www成人免费毛片麻豆| 91成人免费网站| 国产一区二区视频在线| 亚洲aaa精品| 亚洲婷婷在线视频| 精品对白一区国产伦| 欧美写真视频网站| 粉嫩av一区二区三区在线播放| 天天影视色香欲综合网老头| 亚洲人成伊人成综合网小说| 久久蜜桃av一区精品变态类天堂| 欧美一级理论性理论a| 久久久美女艺术照精彩视频福利播放| 91成人免费网站| 久久综合综合久久综合| 亚洲制服丝袜av| 中文一区二区完整视频在线观看| 91精品国产福利| 欧美日韩一区三区| av亚洲精华国产精华| 国产成人av一区二区三区在线观看| 天天综合色天天综合色h| 一区二区三区精品视频| 国产精品欧美综合在线| 精品91自产拍在线观看一区| 欧美一区三区四区| 欧美日韩高清一区二区三区| 欧美吻胸吃奶大尺度电影| 一本色道综合亚洲| 色哟哟欧美精品| 色综合久久综合网欧美综合网| 国产91清纯白嫩初高中在线观看 | 日韩高清不卡在线| 亚洲成人黄色小说| 亚洲gay无套男同| 亚洲图片欧美色图| 午夜a成v人精品| 婷婷久久综合九色综合伊人色| 亚洲国产日韩精品| 亚洲第一会所有码转帖| 亚洲一区成人在线| 亚洲第一av色| 午夜免费久久看| 日韩激情一二三区| 亚瑟在线精品视频| 日本vs亚洲vs韩国一区三区二区| 青青草国产成人99久久| 久久精品av麻豆的观看方式| 久国产精品韩国三级视频| 国产乱色国产精品免费视频| 成人精品在线视频观看| 成人av免费观看| 在线精品视频一区二区| 成人手机电影网| 国产一区啦啦啦在线观看| 国产另类ts人妖一区二区| 成人免费黄色在线| 99riav久久精品riav| 在线免费观看不卡av| 久久久久久久久久美女| 国产精品亲子乱子伦xxxx裸| 亚洲精品国产高清久久伦理二区| 亚洲综合色在线| 久久精品免费观看| 99视频国产精品| 欧美日韩一区二区在线观看| 精品国产成人系列| 中文字幕一区二区三区蜜月| 午夜久久久久久电影| 黄色日韩三级电影| 在线观看欧美日本| 精品毛片乱码1区2区3区| 亚洲视频在线一区二区| 日韩电影在线一区二区三区| 国产宾馆实践打屁股91| 欧美亚洲综合网| 久久久久久夜精品精品免费| 亚洲免费在线看| 狠狠狠色丁香婷婷综合激情 | 成人久久18免费网站麻豆 | 99久久免费国产| 欧美一卡2卡3卡4卡| 国产精品久久久久精k8| 欧美亚洲愉拍一区二区| 6080日韩午夜伦伦午夜伦| 欧美精品一区二区三区久久久| 中文字幕一区在线观看| 亚洲va欧美va天堂v国产综合| 国产精选一区二区三区| 欧美日韩一区精品| 中文字幕日韩精品一区| 美日韩黄色大片| 欧美日韩亚洲综合在线| 国产精品网曝门| 韩国一区二区视频| 一区二区三区在线免费| 午夜精品影院在线观看| 成人午夜在线视频| 国产精品久久久久久久久晋中| 国产精品高潮呻吟久久| 狠狠色丁香久久婷婷综合丁香| 午夜久久福利影院| 天天射综合影视| 日韩一区二区免费在线观看| 蜜臀91精品一区二区三区| 欧美一级在线免费| 久久99热这里只有精品| 久久精品网站免费观看| 高清不卡一区二区| 亚洲精品国产a久久久久久| 日韩精品一区二区三区三区免费| 美女视频网站黄色亚洲| 欧美成人猛片aaaaaaa| 国产99久久久国产精品| 1024成人网色www| 欧美日韩国产精选| 久久国产成人午夜av影院| 中文字幕 久热精品 视频在线| aaa国产一区| 午夜国产精品一区|