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

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

?? comp_reducerdyneliasgamma.bas

?? 常用加密算法用VB來實現
?? BAS
字號:
Attribute VB_Name = "Comp_ReducerDynEliasGamma"


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

Private Type BytePos
    Data() As Byte
    Position As Long
    Buffer As Integer
    BitPos As Integer
End Type
Private Stream(1) As BytePos    '0=control 1=BitStreams

Private CharCount(256) As Long

Private Dictionary As String
Private BitsForHeader As Integer   '1=max 6 chars  2=max 30 chars  3=more then 30 chars
Private LeadingZero(9) As Integer
Private GammaCode(9) As Integer
Private BitsToFollow(9) As Integer

Public Sub Compress_ReducerDynamicEG(ByteArray() As Byte)
    Dim X As Long
    Dim Y As Long
    Dim NoMore As Boolean
    Dim Most As Long
    Dim NewFileLen As Long
    Dim Nuchar As Byte
    Dim CharCount(255) As Long
    Call Init_ReducerDynamicEG
'whe only read the stream and convert them to bitstreams
    For X = 0 To UBound(ByteArray)
        Call AddValueToStream(CInt(ByteArray(X)))
    Next
'send the EOF-marker
    Call AddValueToStream(256)
'lets fill the leftovers
    For X = 0 To 1
        Do While Stream(X).BitPos > 0
            Call AddBitsToStream(Stream(X), 0, 1)
        Loop
    Next
'Lets restore the bounderies
    For X = 0 To 1
        ReDim Preserve Stream(X).Data(Stream(X).Position - 1)
    Next
'whe calculate the new length of the new data
    NewFileLen = 0
    For X = 0 To 1
        NewFileLen = NewFileLen + UBound(Stream(X).Data) + 1
    Next
    ReDim ByteArray(NewFileLen + 3)
'here we store the compressed data
    NewFileLen = 0
    For X = 0 To 0
        ByteArray(NewFileLen) = Int(UBound(Stream(X).Data) / &H10000) And &HFF
        NewFileLen = NewFileLen + 1
        ByteArray(NewFileLen) = Int(UBound(Stream(X).Data) / &H100) And &HFF
        NewFileLen = NewFileLen + 1
        ByteArray(NewFileLen) = UBound(Stream(X).Data) And &HFF
        NewFileLen = NewFileLen + 1
    Next
    For X = 0 To 1
        For Y = 0 To UBound(Stream(X).Data)
            ByteArray(NewFileLen) = Stream(X).Data(Y)
            NewFileLen = NewFileLen + 1
        Next
    Next
End Sub

Public Sub DeCompress_ReducerDynamicEG(ByteArray() As Byte)
    Dim OutStream() As Byte
    Dim OutPos As Long
    Dim InposCont As Long
    Dim InContBit As Integer
    Dim InposData As Long
    Dim InDataBit As Integer
    Dim Char As Integer
    Dim Numbits As Integer
    Dim X As Long
    Dim Temp As Integer
    Dim bitcount As Integer
    ReDim OutStream(500)
    Call Init_ReducerDynamicEG
    InposCont = 0
    InposData = 0
    For X = 0 To 2
        InposData = CLng(InposData) * 256 + ByteArray(InposCont)
        InposCont = InposCont + 1
    Next
    InposData = InposData + InposCont + 1
    InContBit = 0
    InDataBit = 0
    OutPos = 0
    Do
        bitcount = 0
        Do While ReadBitsFromArray(ByteArray, InposCont, InContBit, 1) = 0 And bitcount < 9
            bitcount = bitcount + 1
        Loop
'        If bitcount = 9 Then ReadEliasCode = 256: Exit Function
        Temp = 2 ^ bitcount
        If bitcount < 8 Then
            Temp = Temp + ReadBitsFromArray(ByteArray, InposCont, InContBit, bitcount)
        End If
        Numbits = Temp
'        Numbits = ReadBitsFromArray(ByteArray, InposCont, InContBit, BitsForHeader) + 1
        Char = ReadBitsFromArray(ByteArray, InposData, InDataBit, Numbits)
        Char = ExpanderBits(Numbits, Char)
        If Char = 256 Then Exit Do
        Call AddCharToArray(OutStream, OutPos, CByte(Char))
    Loop
    ReDim ByteArray(OutPos - 1)
    For X = 0 To OutPos - 1
        ByteArray(X) = OutStream(X)
    Next
End Sub

Private Sub Init_ReducerDynamicEG()
    Dim X As Integer
    Dictionary = ""
    For X = 0 To 255
        Dictionary = Dictionary & Chr(X)
        CharCount(X) = 0
    Next
    CharCount(256) = 0
    BitsForHeader = 3
    For X = 0 To 1
        ReDim Stream(X).Data(500)
        Stream(X).BitPos = 0
        Stream(X).Buffer = 0
        Stream(X).Position = 0
    Next
    LeadingZero(0) = 0: GammaCode(0) = 1: BitsToFollow(0) = 0    '1                  =1         -7
    LeadingZero(1) = 1: GammaCode(1) = 1: BitsToFollow(1) = 1    '01x                =2-3       -5
    LeadingZero(2) = 2: GammaCode(2) = 1: BitsToFollow(2) = 2    '001xx              =4-7       -3
    LeadingZero(3) = 3: GammaCode(3) = 1: BitsToFollow(3) = 3    '0001xxx            =8-15      -1
    LeadingZero(4) = 4: GammaCode(4) = 1: BitsToFollow(4) = 4    '00001xxxx          =16-31     +1
    LeadingZero(5) = 5: GammaCode(5) = 1: BitsToFollow(5) = 5    '000001xxxxx        =32-63     +3
    LeadingZero(6) = 6: GammaCode(6) = 1: BitsToFollow(6) = 6    '0000001xxxxxx      =64-127    +5
    LeadingZero(7) = 7: GammaCode(7) = 1: BitsToFollow(7) = 7    '00000001xxxxxxx    =128-255   +7
    LeadingZero(8) = 8: GammaCode(7) = 1: BitsToFollow(8) = 0    '000000001          =256       +1
    LeadingZero(9) = 8: GammaCode(9) = 0: BitsToFollow(8) = 0    '000000000          =257       +1   EOF
End Sub

Private Function ReducerBits(Char As Integer) As Integer
    Dim DiPos As Integer
    Dim TotPos As Integer
    Dim Y As Integer
    If Char = 256 Then ReducerBits = 8: Char = 255: Exit Function
    DiPos = InStr(Dictionary, Chr(Char)) - 1
    Call update_Model(Char)
    For Y = 1 To 8
        If DiPos >= TotPos And DiPos < TotPos + 2 ^ Y Then
            ReducerBits = Y
            Char = DiPos - TotPos
            Exit Function
        End If
        TotPos = TotPos + 2 ^ Y
    Next
End Function

Private Function ExpanderBits(BitsNum As Integer, BytePos As Integer) As Integer
    If BitsNum = 8 And BytePos = 255 Then ExpanderBits = 256: Exit Function
    Dim TotPos As Integer
    Dim Y As Integer
    For Y = 1 To BitsNum - 1
        TotPos = TotPos + 2 ^ Y
    Next
    TotPos = TotPos + BytePos + 1
    ExpanderBits = ASC(Mid(Dictionary, TotPos, 1))
    Call update_Model(ExpanderBits)
End Function

Private Sub update_Model(Char As Integer)
    Dim DictPos As Integer
    Dim OldPos As Integer
    Dim Temp As Long
    DictPos = InStr(Dictionary, Chr(Char))
    OldPos = DictPos
    CharCount(DictPos) = CharCount(DictPos) + 1
    Do While DictPos > 1 And CharCount(DictPos) >= CharCount(DictPos - 1)
        Temp = CharCount(DictPos - 1)
        CharCount(DictPos - 1) = CharCount(DictPos)
        CharCount(DictPos) = Temp
        DictPos = DictPos - 1
    Loop
    If OldPos = DictPos Then Exit Sub
    Dictionary = Left(Dictionary, DictPos - 1) & Chr(Char) & Mid(Dictionary, DictPos, OldPos - DictPos) & Mid(Dictionary, OldPos + 1)
End Sub

Private Sub AddValueToStream(Number As Integer)
    Dim BitsDeep As Integer
    Dim Code As Integer
    BitsDeep = ReducerBits(Number)
    Code = Get_Elias_Code(BitsDeep)
    Call AddBitsToStream(Stream(0), 0, LeadingZero(Code))
    Call AddBitsToStream(Stream(0), CLng(GammaCode(Code)), 1)
    Call AddBitsToStream(Stream(0), BitsDeep, BitsToFollow(Code))
'    Call AddBitsToStream(Stream(0), BitsDeep - 1, BitsForHeader)
    Call AddBitsToStream(Stream(1), Number, BitsDeep)
End Sub

'this sub will add an amount of bits to a sertain stream
Private Sub AddBitsToStream(Toarray As BytePos, Number As Integer, Numbits As Integer)
    Dim X As Long
    If Numbits = 8 And Toarray.BitPos = 0 Then
        If Toarray.Position > UBound(Toarray.Data) Then ReDim Preserve Toarray.Data(Toarray.Position + 500)
        Toarray.Data(Toarray.Position) = Number And &HFF
        Toarray.Position = Toarray.Position + 1
        Exit Sub
    End If
    For X = Numbits - 1 To 0 Step -1
        Toarray.Buffer = Toarray.Buffer * 2 + (-1 * ((Number And 2 ^ X) > 0))
        Toarray.BitPos = Toarray.BitPos + 1
        If Toarray.BitPos = 8 Then
            If Toarray.Position > UBound(Toarray.Data) Then ReDim Preserve Toarray.Data(Toarray.Position + 500)
            Toarray.Data(Toarray.Position) = Toarray.Buffer
            Toarray.BitPos = 0
            Toarray.Buffer = 0
            Toarray.Position = Toarray.Position + 1
        End If
    Next
End Sub

'this function will return a value out of the amaunt of bits you asked for
Private Function ReadBitsFromArray(FromArray() As Byte, FromPos As Long, FromBit As Integer, 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 - FromBit)) > 0))
        FromBit = FromBit + 1
        If FromBit = 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
            FromBit = 0
        End If
    Next
    ReadBitsFromArray = Temp
End Function

'this sub will add a char into the outputstream
Private Sub AddCharToArray(Toarray() As Byte, ToPos As Long, Char As Byte)
    If ToPos > UBound(Toarray) Then ReDim Preserve Toarray(ToPos + 500)
    Toarray(ToPos) = Char
    ToPos = ToPos + 1
End Sub

Private Function Get_Elias_Code(Number As Integer) As Integer
    Select Case Number
    Case 1
        Get_Elias_Code = 0
    Case Is < 4
        Get_Elias_Code = 1
    Case Is < 8
        Get_Elias_Code = 2
    Case Is < 16
        Get_Elias_Code = 3
    Case Is < 32
        Get_Elias_Code = 4
    Case Is < 64
        Get_Elias_Code = 5
    Case Is < 128
        Get_Elias_Code = 6
    Case Is < 256
        Get_Elias_Code = 7
    Case Is = 256
        Get_Elias_Code = 8
    Case Else
        Get_Elias_Code = 9
    End Select
End Function

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久亚洲综合网 | 亚洲国产一二三| 日韩不卡免费视频| 91网页版在线| 国产亚洲欧美日韩在线一区| 性久久久久久久久久久久| 国模娜娜一区二区三区| 欧美无砖专区一中文字| 国产精品不卡在线| 国产剧情在线观看一区二区| 欧美男生操女生| 亚洲日本乱码在线观看| 国产a视频精品免费观看| 日韩西西人体444www| 一区二区三区在线视频观看| 成人天堂资源www在线| 精品毛片乱码1区2区3区| 亚洲一区在线观看视频| 91在线国产观看| 中文字幕va一区二区三区| 极品美女销魂一区二区三区免费| 欧美视频一区二| 一区二区不卡在线播放 | 成人av网站在线观看免费| 欧美精品一区二区三区高清aⅴ| 亚洲主播在线播放| 欧洲av一区二区嗯嗯嗯啊| 最新日韩在线视频| 99久久婷婷国产综合精品电影| 国产拍欧美日韩视频二区| 久久99精品国产麻豆婷婷洗澡| 日韩限制级电影在线观看| 日本不卡一二三区黄网| 4438x成人网最大色成网站| 偷拍一区二区三区| 7777精品久久久大香线蕉| 天天影视涩香欲综合网| 欧美日韩大陆一区二区| 丝袜亚洲另类欧美| 欧美一级xxx| 国内不卡的二区三区中文字幕| 日韩精品一区二区三区在线播放| 美女爽到高潮91| 精品久久久网站| 国产一区二区在线电影| 中文字幕不卡在线播放| 色哟哟欧美精品| 亚洲一区二区三区视频在线播放 | 国产精品久久久久7777按摩| 成人福利视频在线看| 亚洲免费在线观看| 欧美日韩国产小视频| 精品一区二区在线视频| 国产日韩视频一区二区三区| 欧美精品久久久久久久久老牛影院| 一区二区三区四区不卡在线 | 国产精品一品二品| 国产精品毛片久久久久久久| 日本精品一级二级| 日韩成人精品视频| 亚洲国产精品国自产拍av| 91视频91自| 日本欧洲一区二区| 欧美激情一区不卡| 日本韩国欧美国产| 久久99精品国产| 亚洲精品一二三| 欧美成人bangbros| 91日韩在线专区| 精品一区二区精品| 亚洲精品成a人| 精品国产乱码久久久久久牛牛| 97久久久精品综合88久久| 奇米综合一区二区三区精品视频| 久久青草国产手机看片福利盒子| 一本到一区二区三区| 精彩视频一区二区| 一区二区三区蜜桃| 国产欧美一区二区精品仙草咪| 91久久人澡人人添人人爽欧美| 久久精品国产澳门| 亚洲一级片在线观看| 久久精品日韩一区二区三区| 欧美日韩1区2区| 97久久人人超碰| 国产一区二区福利视频| 午夜久久福利影院| 亚洲色图另类专区| 国产调教视频一区| 日韩写真欧美这视频| 欧美视频一区在线观看| 成人精品免费看| 欧美亚州韩日在线看免费版国语版| 蜜臀91精品一区二区三区| 一区二区日韩av| 国产精品久久久久婷婷| 久久综合九色综合97婷婷| 欧美日韩精品一区二区三区蜜桃| 99视频有精品| 不卡免费追剧大全电视剧网站| 久久99国内精品| 美女mm1313爽爽久久久蜜臀| 亚洲午夜三级在线| 亚洲网友自拍偷拍| 亚洲激情图片qvod| 亚洲人xxxx| 亚洲情趣在线观看| 亚洲天堂久久久久久久| 国产精品久久久久久户外露出 | 91在线观看一区二区| 国产精品资源在线看| 经典三级一区二区| 久久精品国产亚洲一区二区三区| 亚洲成人三级小说| 亚洲国产中文字幕在线视频综合| **网站欧美大片在线观看| 欧美精彩视频一区二区三区| 国产亚洲福利社区一区| 久久久国产一区二区三区四区小说 | 亚洲va天堂va国产va久| 一区二区三区影院| 亚洲最大色网站| 丝袜美腿亚洲色图| 久久99国产精品麻豆| 国产露脸91国语对白| 国产不卡视频在线播放| 欧美一区2区视频在线观看| 欧美日韩国产大片| 日韩一区二区电影| 久久久蜜桃精品| 亚洲国产精品v| 亚洲精品乱码久久久久久| 亚洲mv在线观看| 久久99精品久久久久久动态图| 国产毛片精品一区| 成人av在线影院| 欧美日韩专区在线| 日韩精品一区二区三区在线| 国产日本一区二区| 亚洲制服丝袜一区| 精品伊人久久久久7777人| 成人免费视频播放| 欧美日韩久久一区二区| 欧美va日韩va| 1024成人网色www| 人妖欧美一区二区| 国产成人亚洲精品狼色在线| 色婷婷av一区二区三区软件| 欧美二区三区91| 国产精品系列在线| 天堂成人国产精品一区| 国产精品一区三区| 欧美色爱综合网| 国产亚洲一区二区三区四区| 一区二区三区成人在线视频| 极品尤物av久久免费看| 欧美综合一区二区| www久久精品| 亚洲不卡av一区二区三区| 韩国精品主播一区二区在线观看| 99国内精品久久| 欧美一二三区在线观看| 国产精品久久久99| 极品少妇xxxx偷拍精品少妇| 色悠久久久久综合欧美99| 亚洲精品在线免费观看视频| 亚洲黄色性网站| 国产精华液一区二区三区| 欧美高清一级片在线| 国产精品成人一区二区艾草| 蜜臀av性久久久久蜜臀aⅴ流畅| 91在线观看免费视频| 精品播放一区二区| 午夜一区二区三区在线观看| 成人免费视频视频| 久久噜噜亚洲综合| 日日嗨av一区二区三区四区| 色综合久久天天综合网| 国产亚洲va综合人人澡精品| 日韩成人午夜电影| 91蝌蚪porny九色| 中国色在线观看另类| 国产精一品亚洲二区在线视频| 欧美精品在欧美一区二区少妇| 亚洲日本乱码在线观看| 成人永久看片免费视频天堂| 欧美成人vps| 青青国产91久久久久久| 777久久久精品| 午夜激情综合网| 欧美日韩亚洲另类| 亚洲成人av一区| 欧美丝袜自拍制服另类| 亚洲精品成人在线| 色拍拍在线精品视频8848| 中文字幕制服丝袜一区二区三区 | 日韩电影免费一区| 欧美视频一区二| aaa国产一区| 日韩一区在线播放|