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

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

?? comp_lzwdynamic.bas

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


Option Explicit

'This is a 1 run method

Private MaxChars As Long
Private TempStream() As Byte
Private OutStream() As Byte
Private OutPos As Long
Private OutByteBuf As Integer
Private OutBitCount As Integer
Private ReadBitPos As Integer
Private Dict() As String        'de dictionaries
Private DictPos As Integer      'de positie waar de volgende karakters worden ingevoegd
Private SearchPos() As Long
Private SpeedSearch() As Long
Private ActDict As Integer      'actuele dictionary
Private maxCharLenght As Byte   'Maximum stringlengte in de dictionary
Private maxDictDeep As Long     'maximaal opgeslagen woorden per dictionary
Private TotBitDeep As Integer      'totale bitlengte per karakter of karaktervolgorde
Private MaxBitDeep As Integer
Private Const StartDict As Long = 257   'startpositie van de dictionary

Public Sub Compress_LZW_Dynamic(FileArray() As Byte)
    Dim ByteValue As Byte
    Dim TempByte As Long
    Dim ExtraBits As Integer
    Dim DictStr As String
    Dim NewStr As String
    Dim CompPos As Long
    Dim DictVal As Long
    Dim DictPosit As Long
    Dim DictPositOld As Long
    Dim FilePos As Long
    Dim FileLenght As Long
    Dim Temp As Long
    Dim MaxDictPagesInBites As Long
    MaxDictPagesInBites = CLng(1024) * DictionarySize - 1
    Call Init_Dictvar(MaxDictPagesInBites)
    FileLenght = UBound(FileArray)
    ReDim OutStream(FileLenght + 10)
    OutPos = 0
    Call AddBitsToOutStream(CLng(maxCharLenght), 8)
    Call AddBitsToOutStream(CLng(MaxBitDeep), 8)
    FilePos = 0
    CompPos = 7
    DictStr = ""
    ExtraBits = 0
    Do Until FilePos > FileLenght
        ByteValue = FileArray(FilePos)
        FilePos = FilePos + 1
        NewStr = DictStr & Chr(ByteValue)
        DictPosit = Search(NewStr)
        If DictPosit <> maxDictDeep + 1 Then
            DictStr = NewStr
            DictPositOld = DictPosit
        Else
            Call AddBitsToOutStream(DictPositOld, TotBitDeep)
            Call AddToDict(NewStr, 1)
            DictPositOld = ByteValue
            DictStr = Chr(ByteValue)
        End If
    Loop
    Call AddBitsToOutStream(DictPositOld, TotBitDeep)
    Call AddBitsToOutStream(256, TotBitDeep)
    Do While OutBitCount > 0
        Call AddBitsToOutStream(0, 1)
    Loop
    ReDim FileArray(OutPos - 1)
    Call CopyMem(FileArray(0), OutStream(0), OutPos)
End Sub

Public Sub DeCompress_LZW_Dynamic(FileArray() As Byte)
    Dim ReadBits As Integer
    Dim DictVal As Long
    Dim TempByte As Long
    Dim OldKarValue As Long
    Dim DeComPByte() As Byte
    Dim DeCompPos As Long
    Dim FilePos As Long
    Dim FileLenght As Long
    Dim InpPos As Long
    InpPos = 0
    ReadBitPos = 0
    OutPos = 0
    DictVal = -1
    maxCharLenght = ReadBitsFromArray(FileArray, InpPos, 8)
    maxDictDeep = (2 ^ ReadBitsFromArray(FileArray, InpPos, 8)) - 1
    Call Init_Dictvar(maxDictDeep)
    ReDim OutStream(500)
    Do
        OldKarValue = DictVal
        DictVal = ReadBitsFromArray(FileArray, InpPos, TotBitDeep)
        If DictVal = 256 Then Exit Do
        If Dict(DictVal) <> "" Then
            Call AddASC2OutStream(Dict(DictVal))
            If OldKarValue <> -1 Then Call AddToDict(Dict(OldKarValue) & Left(Dict(DictVal), 1), 0)
        Else
            Call AddToDict(Dict(OldKarValue) & Left(Dict(OldKarValue), 1), 0)
            Call AddASC2OutStream(Dict(DictVal))
        End If
    Loop
    OutPos = OutPos - 1
    ReDim FileArray(OutPos)
    Call CopyMem(FileArray(0), OutStream(0), OutPos + 1)
End Sub

Private Sub Init_Dictvar(Optional MaxDictPagesInBites As Long = 512, Optional StoreTilCharLenght As Byte = 50)
    Dim X As Integer
    If MaxDictPagesInBites > 65535 Then
        MaxDictPagesInBites = 65535
    ElseIf MaxDictPagesInBites < 255 Then
        MaxDictPagesInBites = 255
    End If
    For X = 0 To 16
        If MaxDictPagesInBites <= 2 ^ X Then
            MaxDictPagesInBites = 2 ^ X
            MaxBitDeep = X
            Exit For
        End If
    Next
    MaxDictPagesInBites = MaxDictPagesInBites - 1
    maxCharLenght = StoreTilCharLenght
    maxDictDeep = MaxDictPagesInBites
    Call Clean_DictionaryVar
End Sub

Private Sub Clean_DictionaryVar()
    Dim X As Long
    Dim Y As Long
    ReDim Dict(maxDictDeep)
    ReDim SearchPos(maxDictDeep - 255, maxCharLenght)
    ReDim SpeedSearch(maxDictDeep - 255)
    For X = 0 To 255
        Dict(X) = Chr(X)
    Next
    For X = 256 To maxDictDeep
        If Dict(X) = "" Then Exit For Else Dict(X) = ""
    Next
    For X = 0 To maxDictDeep - 255
        SpeedSearch(X) = 0
        For Y = 0 To maxCharLenght
            If SearchPos(X, Y) = 0 Then Exit For Else SearchPos(X, Y) = 0
        Next
    Next
    Call Init_DictStart
End Sub

Private Sub Init_DictStart()
    DictPos = StartDict
    TotBitDeep = 9
End Sub

Private Function Search(Char As String) As Long
    Dim X As Long
    Dim Step As Long
    Step = 0
    If Len(Char) = 1 Then
        Search = ASC(Char)
        Exit Function
    ElseIf Len(Char) < maxCharLenght Then
        X = SearchPos(Step, Len(Char))
        Do While X <> 0
            If Dict(X) = Char Then
                Search = X
                Exit Function
            End If
            Step = Step + 1
            X = SearchPos(Step, Len(Char))
        Loop
    End If
    Search = maxDictDeep + 1
End Function

Private Sub AddToDict(Char As String, Comp1Decomp0 As Byte)
    If Len(Char) = 1 Or Len(Char) - 2 > maxCharLenght Then Exit Sub
    If DictPos + Comp1Decomp0 >= maxDictDeep Then Call Init_DictStart
    If DictPos >= (2 ^ TotBitDeep) - (1 - Comp1Decomp0) Then
        TotBitDeep = TotBitDeep + 1
    End If
    Dict(DictPos) = Char
    SearchPos(SpeedSearch(Len(Char)), Len(Char)) = DictPos
    SpeedSearch(Len(Char)) = SpeedSearch(Len(Char)) + 1
    DictPos = DictPos + 1
End Sub

Private Sub AddASC2OutStream(Text As String)
    Dim X As Long
    If OutPos + Len(Text) > UBound(OutStream) Then ReDim Preserve OutStream(OutPos + Len(Text) + 500)
    For X = 1 To Len(Text)
        OutStream(OutPos) = ASC(Mid(Text, X, 1))
        OutPos = OutPos + 1
    Next
End Sub

'this sub will add an amount of bits into the outputstream
Private Sub AddBitsToOutStream(Number As Long, Numbits As Integer)
    Dim X As Long
    For X = Numbits - 1 To 0 Step -1
        OutByteBuf = OutByteBuf * 2 + (-1 * ((Number And CDbl(2 ^ X)) > 0))
        OutBitCount = OutBitCount + 1
        If OutBitCount = 8 Then
            OutStream(OutPos) = OutByteBuf
            OutBitCount = 0
            OutByteBuf = 0
            OutPos = OutPos + 1
            If OutPos > UBound(OutStream) Then
                ReDim Preserve OutStream(OutPos + 500)
            End If
        End If
    Next
End Sub

'this sub will read an amount of bits from the inputstream
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一区二区三区免费野_久草精品视频
欧美三区在线观看| 日韩欧美黄色影院| 日韩欧美一级在线播放| 免费成人av在线播放| 欧美一卡二卡三卡| 国产精品影音先锋| 国产精品丝袜91| 91免费国产在线观看| 亚洲一区二区不卡免费| 欧美一区二区三区视频| 国产麻豆日韩欧美久久| 亚洲成精国产精品女| 久久久久亚洲蜜桃| 欧美日韩国产影片| 色94色欧美sute亚洲13| 在线观看不卡视频| 国内精品免费**视频| 一区二区三区国产豹纹内裤在线| 69p69国产精品| 不卡电影一区二区三区| 久久精品国产亚洲一区二区三区| 中文字幕在线不卡视频| 日韩一区二区三区在线| 91福利区一区二区三区| 成+人+亚洲+综合天堂| 国产麻豆欧美日韩一区| 色就色 综合激情| 欧美一级精品大片| 国产精品一区二区男女羞羞无遮挡 | 免费在线成人网| 欧美日本一区二区在线观看| 国产精品视频一二| 国产大陆精品国产| 久久久国产精华| 精品一区二区免费| 久久精子c满五个校花| 久久99国产精品麻豆| 91精品在线免费| 麻豆视频一区二区| 欧美大片一区二区| 免费日本视频一区| 久久中文字幕电影| 国产成人午夜99999| 久久夜色精品一区| www.色综合.com| 伊人色综合久久天天人手人婷| 日本韩国欧美国产| 亚洲电影中文字幕在线观看| 在线观看国产日韩| 蜜桃久久久久久久| 久久精品亚洲精品国产欧美kt∨| 成人av资源网站| 亚洲一区二区在线免费观看视频 | 久久人人97超碰com| 91丨porny丨国产| 午夜精品在线看| 26uuu另类欧美| 91日韩精品一区| 日韩高清欧美激情| 国产精品久久免费看| 911国产精品| 色呦呦国产精品| 国产永久精品大片wwwapp| 国产精品美女久久久久久久久久久 | 欧美在线制服丝袜| 韩国一区二区三区| 亚洲国产一区在线观看| 国产精品久久久久久久久搜平片| 3atv一区二区三区| 一本高清dvd不卡在线观看| 日本美女视频一区二区| 亚洲一区二区三区三| 国产欧美日韩另类视频免费观看| 91精品国产美女浴室洗澡无遮挡| 99国产欧美久久久精品| 国产一区欧美二区| 老司机精品视频一区二区三区| 亚洲美女在线一区| 一区二区高清视频在线观看| 国产精品久久久久久久岛一牛影视| 久久新电视剧免费观看| 欧美日本一区二区三区四区 | 国产欧美一区二区在线| 欧美一区二区久久| 91精品国产综合久久精品图片| 欧美色成人综合| 欧美日韩卡一卡二| 欧美一级日韩不卡播放免费| 制服.丝袜.亚洲.中文.综合 | 综合中文字幕亚洲| 综合网在线视频| 亚洲国产成人porn| 日韩avvvv在线播放| 国产最新精品免费| 99精品热视频| 欧美一级精品在线| 国产免费久久精品| 亚洲综合色在线| 免费看欧美美女黄的网站| 不卡欧美aaaaa| 日韩精品一区二区三区在线| 2020国产精品自拍| 国产精品第13页| 日韩福利视频网| 成人免费看黄yyy456| 欧美日本高清视频在线观看| 精品国精品自拍自在线| 国产精品色婷婷久久58| 男女视频一区二区| 色激情天天射综合网| 久久久久国产成人精品亚洲午夜| 久久99国产精品久久| 欧美日韩美女一区二区| 亚洲色图视频网站| 成人av影院在线| 国产性天天综合网| 久久99久久99小草精品免视看| 日本伦理一区二区| 亚洲三级在线播放| 91啪亚洲精品| 国产精品久久久久久亚洲伦| 国产成人午夜精品影院观看视频 | 午夜精品成人在线| 欧美自拍偷拍午夜视频| 一区二区三区中文在线观看| 成人免费电影视频| 国产精品美女一区二区| 99国产精品久久久| 亚洲日本青草视频在线怡红院| 成人午夜免费av| 亚洲欧美色一区| 色天使色偷偷av一区二区| 亚洲精品videosex极品| 欧美日韩一区二区三区在线| 国产sm精品调教视频网站| 国产喂奶挤奶一区二区三区| 国产精品一二三四区| 国产精品午夜春色av| 日本乱人伦一区| 国产精品一区二区男女羞羞无遮挡 | 国产欧美日韩不卡免费| 99久久综合国产精品| 亚洲午夜在线观看视频在线| 日韩一区二区在线观看视频| 国产精品18久久久久久vr| 国产精品国产精品国产专区不蜜 | 亚洲精品美国一| 精品久久久久久久久久久院品网 | **性色生活片久久毛片| 91精品国产综合久久婷婷香蕉 | 日韩欧美成人一区| 成人久久18免费网站麻豆| 亚洲综合免费观看高清完整版在线| 日韩午夜激情电影| 91老师国产黑色丝袜在线| 激情五月激情综合网| 一区二区三区 在线观看视频| 日韩一区二区三免费高清| 欧美在线你懂得| 91香蕉国产在线观看软件| 国产精品88av| 伦理电影国产精品| 一区二区三区欧美| 国产精品你懂的| 国产日产欧美一区二区视频| 欧美精品一区二区三区久久久| 欧美精品久久天天躁| 色婷婷精品大在线视频 | 国产欧美日韩亚州综合 | 精品一区二区国语对白| 日韩高清不卡一区| 毛片av一区二区| 毛片av一区二区三区| 久久精品久久精品| 国产在线观看免费一区| 国产成人综合亚洲网站| 国产传媒日韩欧美成人| 成人自拍视频在线观看| 99r精品视频| 欧美乱妇15p| www国产精品av| 欧美国产丝袜视频| 亚洲精品伦理在线| 日韩国产欧美在线观看| 久久精品国产精品青草| 成人h动漫精品| 欧美一区二区精品| 国产精品色眯眯| 日韩中文字幕av电影| 久久精品噜噜噜成人av农村| 成人av网站在线观看| 欧美电影在哪看比较好| 国产三级精品三级在线专区| 曰韩精品一区二区| 九九精品视频在线看| 色综合一区二区三区| 欧美videossexotv100| 亚洲区小说区图片区qvod| 国产一区在线观看麻豆| 欧美无人高清视频在线观看|