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

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

?? comp_reducer.bas

?? 里面有二十一種加密的算法,很好用的哦,大家一定要多多下載啊
?? BAS
字號:
Attribute VB_Name = "Comp_Reducer"


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 compressor makes use of a dictionary and code the ascii character
'to the position it is located in
'for every character it has to store a header and location
'there are 7 headers which will tell yo the amount of bits to read
'for the location
'example:
'header :   positions
'   0   :   0/1
'   1   :   2/3/4/5
'   2   :   6/7/8/9/10/11/12/13
'   3   :   14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29
'   etc'etc
'The header will have 1,2 or 3 bits depending on the numbers of chars to compress
'The dictionary is build up from the most common char to the least common char
'if as char must be stored which is the 6'ed most common char in the dictionary
'then the posiotion in the dictionary will be 6 but since we start the
'the value 0 the position will be 6-1=5
'5 will fall within the range of header 1
'so the headerbits will be 001 with will tell us to store 2 bits more
'for the position of the char
'since header 1 start with position 2 we can substract this from the
'actual position 5-2=3 which can be stored in 2 bits 11
'so the code to store the 6'ed character wil be 001 11

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 Dictionary As String
Private BitsForHeader As Integer   '1=max 6 chars  2=max 30 chars  3=more then 30 chars

Private Sub Init_Reducer()
    Dim X As Byte
'   controller bits 000-111 for 1 to 8 which tel the numbers of bits to read
'   bits to store
'   2 * 1 bit
'   4 * 2 bits
'   2^? bits * ? bits
'
'   Ascii table can be stored in
'   2*1+4*2+8*3+16*4+32*5+64*6+128*7+2*8 bits + 256 * 3 controlerbits
    Select Case Len(Dictionary)
        Case Is < 7
            BitsForHeader = 1
        Case Is < 30
            BitsForHeader = 2
        Case Else
            BitsForHeader = 3
    End Select
'Init the output stream
    For X = 0 To 1
        ReDim Stream(X).Data(500)
        Stream(X).BitPos = 0
        Stream(X).Buffer = 0
        Stream(X).Position = 0
    Next
End Sub

Public Sub Compress_Reducer(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
'firts whe start looking for the most frequent characters
    For X = 0 To UBound(ByteArray)
        CharCount(ByteArray(X)) = CharCount(ByteArray(X)) + 1
    Next
    NoMore = False
    Dictionary = ""
    Do While NoMore = False
        NoMore = True
        Most = 0
        For X = 0 To 255
            If CharCount(X) > 0 Then
                If CharCount(X) > Most Then
                    Most = CharCount(X)
                    Nuchar = X
                    NoMore = False
                End If
            End If
        Next
'and store it in the dictionary
        If NoMore = False Then
            Dictionary = Dictionary & Chr(Nuchar)
            CharCount(Nuchar) = 0
        End If
    Loop
'init the local variabels
    Call Init_Reducer
'after whe have don that 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 = Len(Dictionary)
    For X = 0 To 1
        NewFileLen = NewFileLen + UBound(Stream(X).Data) + 1
    Next
    ReDim ByteArray(NewFileLen + 6)
'Whe store the dictionary (What a waste) but whe need it for decoding
    NewFileLen = 0
    ByteArray(NewFileLen) = Len(Dictionary) - 1
    NewFileLen = NewFileLen + 1
    For X = 1 To Len(Dictionary)
        ByteArray(NewFileLen) = ASC(Mid(Dictionary, X, 1))
        NewFileLen = NewFileLen + 1
    Next
'Store the start position of the different streams
    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
'Combine the streams into one output stream
    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_Reducer(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
    ReDim OutStream(500)
    Dictionary = ""
    InposCont = 1
'Read the dictionary
    For X = 0 To ByteArray(0)
        Dictionary = Dictionary & Chr(ByteArray(InposCont))
        InposCont = InposCont + 1
    Next
    InposData = 0
'Read the starting points of the different streams
    For X = 0 To 2
        InposData = CLng(InposData) * 256 + ByteArray(InposCont)
        InposCont = InposCont + 1
    Next
    InposData = InposData + InposCont + 1
'init the reducer starting codes
    Call Init_Reducer
    InContBit = 0
    InDataBit = 0
    OutPos = 0
'start decompressing the data
    Do
'read the header bits
        Numbits = ReadBitsFromArray(ByteArray, InposCont, InContBit, BitsForHeader) + 1
'read the position bits
        Char = ReadBitsFromArray(ByteArray, InposData, InDataBit, Numbits)
'translate header and positionbits to ascii code
        Char = ExpanderBits(Numbits, Char)
'exit if EOF-code
        If Char = 256 Then Exit Do
'store the code into the output stream
        Call AddCharToArray(OutStream, OutPos, CByte(Char))
    Loop
'copy the output into the input to return it to the caller
    ReDim ByteArray(OutPos - 1)
    For X = 0 To OutPos - 1
        ByteArray(X) = OutStream(X)
    Next
End Sub

'this function translate an ascii code into a header and dict. position
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
    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

'this function translate a header and dict.position into an ascii code
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
    ExpanderBits = ASC(Mid(Dictionary, TotPos + BytePos + 1, 1))
End Function

Private Sub AddValueToStream(Number As Integer)
    Dim BitsDeep As Integer
    BitsDeep = ReducerBits(Number)
    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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产自产拍高清av| 国产喷白浆一区二区三区| 国产精品中文字幕日韩精品| 精品少妇一区二区三区| 国产精品女主播av| 亚洲五月六月丁香激情| 国产传媒欧美日韩成人| 91精品在线免费| 一区二区三区欧美亚洲| 成人免费看的视频| 精品久久久久久久人人人人传媒| 亚洲一级片在线观看| 成人午夜短视频| 久久精品夜色噜噜亚洲a∨| 老司机精品视频导航| 欧美精品久久一区| 亚洲成人动漫一区| 欧美无砖专区一中文字| 亚洲精品国产a久久久久久 | 亚洲va天堂va国产va久| 视频一区中文字幕国产| 亚洲午夜激情av| 日韩国产欧美在线观看| 成人福利在线看| 91精品国产一区二区| 久久一日本道色综合| 久久国产三级精品| 在线观看亚洲精品视频| 精品sm在线观看| 亚洲成人av免费| 成人美女视频在线看| 欧美日本一区二区三区四区| 中文无字幕一区二区三区| 亚洲h精品动漫在线观看| 午夜精品一区二区三区电影天堂| 免费不卡在线观看| 在线观看免费视频综合| 国产亚洲人成网站| 日本成人中文字幕在线视频| 成年人午夜久久久| 久久亚洲欧美国产精品乐播| 五月天一区二区| 色哟哟一区二区在线观看| 国产区在线观看成人精品| 亚洲成人动漫精品| 91在线视频官网| 国产精品乱子久久久久| 激情伊人五月天久久综合| 欧美日韩一区三区| 亚洲黄色性网站| 97久久人人超碰| 国产欧美视频一区二区三区| 色网站国产精品| 视频一区二区三区中文字幕| 在线精品亚洲一区二区不卡| 《视频一区视频二区| 成人白浆超碰人人人人| 欧美激情在线一区二区三区| 国产精品一区二区在线看| 精品99999| 美日韩黄色大片| 欧美偷拍一区二区| 亚洲国产精品一区二区www | 91视频国产观看| 懂色av噜噜一区二区三区av| 日韩美女在线视频| 激情五月婷婷综合| 精品国产成人系列| 国产日韩亚洲欧美综合| 色综合一区二区三区| 亚洲精品国久久99热| 91色婷婷久久久久合中文| 综合欧美亚洲日本| 一本色道综合亚洲| 亚洲一区二区三区国产| 欧美日本国产一区| 亚洲男人的天堂在线观看| 欧美一级一级性生活免费录像| 日韩电影在线免费| 欧美精品一区二区三| 国产成人免费视频网站高清观看视频| 久久免费精品国产久精品久久久久| 国产精品综合在线视频| 国产精品久久久久桃色tv| 国产美女精品一区二区三区| 亚洲高清视频在线| 日韩女同互慰一区二区| 国产成人综合网| 一区二区三区日韩精品视频| 欧美人与z0zoxxxx视频| 韩国欧美国产1区| 国产精品超碰97尤物18| aaa国产一区| 国产凹凸在线观看一区二区| 亚洲精品视频在线| 制服丝袜国产精品| 国产麻豆成人精品| 亚洲免费av网站| 欧美日本在线观看| 国产成都精品91一区二区三 | www.亚洲色图.com| 青青国产91久久久久久| 欧美性视频一区二区三区| 亚洲精品中文在线| 久久久久久久久久久久久夜| 在线影视一区二区三区| 精东粉嫩av免费一区二区三区| 国产精品久久国产精麻豆99网站| 欧美日韩一区二区三区四区五区 | 久久久午夜电影| 色老汉av一区二区三区| 狠狠色综合播放一区二区| 中文字幕电影一区| 在线观看日韩精品| 国产精品一区二区果冻传媒| 亚洲大片在线观看| 国产精品嫩草影院av蜜臀| 7777精品伊人久久久大香线蕉| 国产精品主播直播| 日本最新不卡在线| 3d动漫精品啪啪1区2区免费 | 亚洲一区二区三区精品在线| 日本一区二区免费在线观看视频 | 午夜亚洲福利老司机| 国产日产欧美一区| 欧美成人一区二区三区| 国产91对白在线观看九色| 国产一区二区三区四区五区入口| 亚洲午夜在线电影| 亚洲免费大片在线观看| 中文字幕一区二区三区视频| 日韩女优视频免费观看| 欧美二区三区的天堂| 国产成人免费网站| 在线一区二区三区| 不卡欧美aaaaa| 粉嫩绯色av一区二区在线观看| 国产一本一道久久香蕉| 久久99热国产| 蜜桃在线一区二区三区| 久久久精品蜜桃| 亚洲欧美日韩人成在线播放| 中文字幕在线一区| 国产精品系列在线| 欧美国产综合一区二区| 久久免费视频色| 久久久久国产成人精品亚洲午夜 | 一本色道综合亚洲| 91麻豆精品一区二区三区| 蜜桃av一区二区三区电影| 午夜电影一区二区三区| 午夜精品久久久久久久99水蜜桃| 日韩精品一区二区三区蜜臀| 1024亚洲合集| 一区二区三区四区不卡视频| 亚洲综合激情网| 亚洲成人av一区二区| 日韩电影一二三区| 一区二区理论电影在线观看| 美女视频一区二区三区| 久久66热re国产| 国产一区二区三区免费播放| 国产精品69久久久久水密桃| 国产一区91精品张津瑜| 成人app在线| 欧美日韩aaa| 欧美变态tickle挠乳网站| 久久人人97超碰com| 国产精品色眯眯| 一区二区三区四区不卡在线| 日韩一区二区三区电影| 亚洲一区在线观看网站| 日韩精品成人一区二区三区| 久久国产福利国产秒拍| 久草在线在线精品观看| 波多野结衣亚洲一区| 欧美性猛片xxxx免费看久爱| 色婷婷av久久久久久久| 日韩三级电影网址| 欧美日韩一本到| 国产精品久久久久久久第一福利| 亚洲欧美国产高清| 亚洲福利一区二区三区| 国模冰冰炮一区二区| 成人18精品视频| 91麻豆免费看| 精品国产乱码久久久久久蜜臀 | 国产一区二区在线视频| 成人午夜伦理影院| 欧美视频精品在线| 欧美色图第一页| 亚洲欧美在线aaa| 日韩1区2区日韩1区2区| 一区二区三区不卡视频在线观看| 久久成人久久鬼色| 色综合久久99| 久久九九久久九九| 亚洲 欧美综合在线网络| 另类人妖一区二区av| 精品精品国产高清一毛片一天堂|