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

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

?? comp_reducerdyngol.bas

?? 20多種VB軟件的加密與壓縮模塊
?? BAS
字號:
Attribute VB_Name = "Comp_ReducerDynGol"


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 Golomb(8) As Integer
Private RetGolomb(15) As Integer
Private BitsToFollow(8) As Integer

Public Sub Compress_ReducerDynamicGol(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_ReducerDynamicGol
'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_ReducerDynamicGol(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 Byte
    ReDim OutStream(500)
    Call Init_ReducerDynamicGol
    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
        Numbits = 0
        Temp = 0
        Temp = Temp * 2 + ReadBitsFromArray(ByteArray, InposCont, InContBit, 2)
        Do While RetGolomb(Temp) = 0
            Temp = Temp * 2 + ReadBitsFromArray(ByteArray, InposCont, InContBit, 1)
        Loop
        Numbits = RetGolomb(Temp)
        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_ReducerDynamicGol()
    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
    Golomb(1) = 0: BitsToFollow(1) = 2    '00
    Golomb(2) = 1: BitsToFollow(2) = 2    '01
    Golomb(3) = 4: BitsToFollow(3) = 3    '100
    Golomb(4) = 5: BitsToFollow(4) = 3    '101
    Golomb(5) = 12: BitsToFollow(5) = 4   '1100
    Golomb(6) = 13: BitsToFollow(6) = 4   '1101
    Golomb(7) = 14: BitsToFollow(7) = 4   '1110
    Golomb(8) = 15: BitsToFollow(8) = 4   '1111
    For X = 0 To 15
        RetGolomb(X) = 0
    Next
    RetGolomb(0) = 1
    RetGolomb(1) = 2
    RetGolomb(4) = 3
    RetGolomb(5) = 4
    RetGolomb(12) = 5
    RetGolomb(13) = 6
    RetGolomb(14) = 7
    RetGolomb(15) = 8
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
    BitsDeep = ReducerBits(Number)
    Call AddBitsToStream(Stream(0), Golomb(BitsDeep), BitsToFollow(BitsDeep))
    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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品欧美在线| 国产精品视频麻豆| 欧美日韩国产a| 日韩欧美另类在线| 欧美韩国日本综合| 亚洲国产一区二区在线播放| 日本在线观看不卡视频| 国产99精品国产| 欧美伊人久久久久久午夜久久久久| 在线播放亚洲一区| 一区二区中文视频| 色综合一个色综合| 色婷婷久久久亚洲一区二区三区| 88在线观看91蜜桃国自产| 国产日韩一级二级三级| 日本欧美一区二区三区| 日韩精品自拍偷拍| 国产黄色精品视频| 欧美大片一区二区| 国产91丝袜在线播放0| 亚洲视频在线一区| www.久久久久久久久| 精品国产乱码久久久久久图片 | 欧美国产日韩精品免费观看| 成人一区二区三区在线观看| 日韩视频免费直播| 欧美aaaaa成人免费观看视频| 在线一区二区观看| 亚洲天堂福利av| 欧美日韩高清影院| 国产成人日日夜夜| 日韩专区欧美专区| 欧洲亚洲精品在线| 一级精品视频在线观看宜春院| 成人午夜碰碰视频| 亚洲成av人片| 欧美精品亚洲一区二区在线播放| 国内精品免费**视频| 91麻豆精品91久久久久久清纯 | 91视频精品在这里| 中文字幕国产一区| 欧美日韩高清不卡| 不卡一卡二卡三乱码免费网站| 欧美国产日韩亚洲一区| 欧美日韩久久一区二区| 成人av网站在线观看| 人禽交欧美网站| 一区二区三区中文免费| 国产亚洲精品7777| 懂色av一区二区三区蜜臀| 香港成人在线视频| 中文字幕一区二区三区不卡| 日韩免费视频一区二区| 91国产丝袜在线播放| 成人久久视频在线观看| 韩国女主播一区| 日韩高清一区在线| 国产河南妇女毛片精品久久久| 伊人一区二区三区| 国产精品污污网站在线观看| 欧美大度的电影原声| 欧美狂野另类xxxxoooo| 91久久国产最好的精华液| 国产成人av福利| 狠狠色狠狠色合久久伊人| 日韩经典中文字幕一区| 亚洲综合激情另类小说区| 91精品福利在线一区二区三区 | 亚洲女人****多毛耸耸8| 欧美日韩一区不卡| 蜜臀91精品一区二区三区| 欧美成人国产一区二区| 国产91对白在线观看九色| 久久精品国产精品青草| 国产午夜精品一区二区三区视频 | 亚洲欧美乱综合| 国产精品精品国产色婷婷| 欧洲激情一区二区| 色婷婷亚洲综合| 91在线视频免费观看| 日本午夜一区二区| 亚洲福中文字幕伊人影院| 一级做a爱片久久| 成人黄色在线看| 成人黄色777网| 国产精品美女久久久久久久 | 欧美一个色资源| 一本色道久久综合亚洲91| av在线这里只有精品| 国产一区二区成人久久免费影院| 色婷婷国产精品久久包臀| 99久久国产免费看| 国产精品538一区二区在线| 国产一区二区三区黄视频 | 亚洲美女屁股眼交3| 综合激情网...| 国产精品超碰97尤物18| 中文字幕精品三区| 亚洲激情中文1区| 亚洲激情成人在线| 一区二区三区精品| 一区二区高清视频在线观看| 亚洲第一搞黄网站| 亚洲成av人影院| 国产伦精品一区二区三区视频青涩| 日韩精品色哟哟| 国产激情91久久精品导航| 国产乱码精品1区2区3区| 成人中文字幕在线| 国产精品一二三四五| 成人综合在线视频| 欧美日韩高清一区二区不卡| 日韩一区和二区| 国产亚洲视频系列| 亚洲三级理论片| 奇米综合一区二区三区精品视频| 三级不卡在线观看| 国产精品一卡二卡在线观看| 91在线精品一区二区三区| 91精品国产品国语在线不卡| www国产精品av| 亚洲一区中文日韩| 久久99热这里只有精品| 国产精品亚洲综合一区在线观看| 国产ts人妖一区二区| 成人激情小说网站| 色婷婷激情久久| 精品毛片乱码1区2区3区| 中文字幕在线观看一区| 午夜一区二区三区在线观看| 久久久精品黄色| 99这里只有精品| 日韩欧美自拍偷拍| 久久亚洲精华国产精华液| 亚洲精品ww久久久久久p站| 午夜成人免费电影| 国产99精品国产| 日韩美女一区二区三区四区| 中文字幕在线播放不卡一区| 韩国毛片一区二区三区| 色婷婷亚洲综合| 国产精品国产三级国产普通话99| 午夜a成v人精品| 欧美亚洲国产一区二区三区| 久久久亚洲欧洲日产国码αv| 亚洲一区av在线| 国产91精品入口| 精品国产凹凸成av人导航| 一区二区三区四区视频精品免费 | 国产欧美一区二区精品秋霞影院| 亚洲成精国产精品女| 激情六月婷婷久久| 91精品国产综合久久久久久| 亚洲乱码国产乱码精品精小说| 狠狠色综合播放一区二区| 日韩欧美在线一区二区三区| 亚洲精品乱码久久久久久| 99久久婷婷国产精品综合| 亚洲精品一区二区三区精华液 | 欧美午夜精品久久久久久超碰| 精品少妇一区二区三区视频免付费| 亚洲成va人在线观看| 色久优优欧美色久优优| 日韩久久一区二区| 国产一区啦啦啦在线观看| 欧美成人伊人久久综合网| 亚洲一区二区三区四区的| 欧洲一区在线电影| 国产精品国产三级国产有无不卡| 国产精品1024| 欧美电视剧在线看免费| 精品写真视频在线观看| 99精品视频一区| 久久精品亚洲精品国产欧美 | 黑人巨大精品欧美一区| 精品对白一区国产伦| 开心九九激情九九欧美日韩精美视频电影| 欧美日本不卡视频| 亚洲成a人v欧美综合天堂| 欧美肥大bbwbbw高潮| 亚洲bt欧美bt精品777| 欧美一区二区三级| 日韩 欧美一区二区三区| 亚洲精品在线一区二区| 日韩福利电影在线| 欧美一区二区免费观在线| 国产一区二区主播在线| 久久精品视频网| 成人综合在线观看| 久久久99免费| 美女一区二区三区在线观看| 欧美一区二区三区免费大片| 麻豆91在线播放免费| 日韩视频免费观看高清完整版| 激情小说欧美图片| 中文字幕亚洲欧美在线不卡| 在线观看三级视频欧美| 美国毛片一区二区| 26uuu精品一区二区三区四区在线| 国产美女一区二区三区|