📄 global.bas
字号:
Case 22
If Decode = False Then Call BWT_CodecArray3(WorkArray)
If Decode = True Then Call BWT_DeCodecArray3(WorkArray)
End Select
Master.MousePointer = MousePointerConstants.vbDefault
If AutoDecodeIsOn = False Then
Call Show_Statistics(False, WorkArray, Timer - StTime)
End If
End Sub
'This sub is used to start a compressor
'whichcoder is the constant of the compressortype
'Decode is used to say if we want to compress or decompress
Public Sub Start_Compressor(WichCompressor)
Dim Decompress As Boolean
Dim Dummy As Boolean
Dim StTime As Double
Dim Text As String
Dim LastUsed As Integer
If UBound(OriginalArray) = 0 Then
MsgBox "There is nothing to compress/Decompress"
Exit Sub
End If
If AutoDecodeIsOn = False Then
Decompress = True
frmCompDecomp.Show vbModal
DoEvents
If CompDecomp = 0 Then Exit Sub
If CompDecomp = 1 Then Decompress = False
Else
Decompress = True
End If
If Decompress = True Then
LastUsed = UsedCodecs(UBound(UsedCodecs))
If JustLoaded = True Then LastUsed = 0
If WichCompressor <> LastUsed Then
Text = "This is not compressed with " & CompName(WichCompressor) & "." & Chr(13)
If LastUsed = 0 Then
Text = Text & "Its not compressed at all"
Else
If LastUsed > 128 Then
Text = Text & "Its coded with the " & CodName(LastUsed And 127)
Else
Text = Text & "Its compressed with " & CompName(LastUsed)
End If
End If
MsgBox Text
Exit Sub
End If
Else
LastCoder = WichCompressor
End If
Call Copy_Orig2Work
LastDeCoded = Decompress
If JustLoaded = True Then
JustLoaded = False
ReDim UsedCodecs(0)
End If
Master.MousePointer = MousePointerConstants.vbHourglass
StTime = Timer
Select Case WichCompressor
Case 1
If Decompress = False Then Call Compress_HuffMan(WorkArray)
If Decompress = True Then Call Decompress_Huffman(WorkArray)
Case 2
If Decompress = False Then Call Compress_Grouping(WorkArray)
If Decompress = True Then Call DeCompress_Grouping(WorkArray)
Case 3
If Decompress = False Then Call Compress_SmartGrouping(WorkArray)
If Decompress = True Then Call DeCompress_SmartGrouping(WorkArray)
Case 4
If Decompress = False Then Call Compress_VBC(WorkArray)
If Decompress = True Then Call DeCompress_VBC(WorkArray)
Case 5
If Decompress = False Then Call Compress_VBC_2(WorkArray)
If Decompress = True Then Call DeCompress_VBC_2(WorkArray)
Case 6
If Decompress = False Then Call Compress_VBC_Reorderble(WorkArray)
If Decompress = True Then Call DeCompress_VBC_Reorderble(WorkArray)
Case 7
If Decompress = False Then
ChooseDictSize.Show 1
Call Compress_LZW_Dynamic(WorkArray)
End If
If Decompress = True Then Call DeCompress_LZW_Dynamic(WorkArray)
Case 8
If Decompress = False Then
ChooseDictSize.Show 1
Call Compress_LZW_Static(WorkArray)
End If
If Decompress = True Then Call DeCompress_LZW_Static(WorkArray)
Case 9
If Decompress = False Then Call Compress_HuffManShortDict(WorkArray)
If Decompress = True Then Call Decompress_HuffmanShortDict(WorkArray)
Case 10
If Decompress = False Then Call Compress_Eliminator(WorkArray)
If Decompress = True Then Call DeCompress_Eliminator(WorkArray)
Case 11
If Decompress = False Then Call Compress_Combiner(WorkArray)
If Decompress = True Then Call DeCompress_Combiner(WorkArray)
Case 12
If Decompress = False Then Call Compress_Combiner3Bytes(WorkArray)
If Decompress = True Then Call DeCompress_Combiner3Bytes(WorkArray)
Case 13
If Decompress = False Then Call Compress_CombinerVariable(WorkArray)
If Decompress = True Then Call DeCompress_CombinerVariable(WorkArray)
Case 14
If Decompress = False Then Call Compress_65535(WorkArray)
If Decompress = True Then Call DeCompress_65535(WorkArray)
Case 15
If Decompress = False Then Call Compress_65535_2(WorkArray)
If Decompress = True Then Call DeCompress_65535_2(WorkArray)
Case 16
If Decompress = False Then Call Compress_Elias_Gamma(WorkArray)
If Decompress = True Then Call DeCompress_Elias_Gamma(WorkArray)
Case 17
If Decompress = False Then Call Compress_Elias_Delta(WorkArray)
If Decompress = True Then Call DeCompress_Elias_Delta(WorkArray)
Case 18
If Decompress = False Then Call Compress_Fibonacci(WorkArray)
If Decompress = True Then Call DeCompress_Fibonacci(WorkArray)
Case 19
If Decompress = False Then
ChooseDictSize.Show 1
Call Compress_LZWPre(WorkArray)
End If
If Decompress = True Then Call DeCompress_LZWPre(WorkArray)
Case 20
If Decompress = False Then
ChooseDictSize.Show 1
Call Compress_LZW_MultyDict(WorkArray)
End If
If Decompress = True Then Call DeCompress_LZW_MultyDict(WorkArray)
Case 21
If Decompress = False Then
ChooseDictSize.Show 1
Call Compress_LZW_LZSS(WorkArray)
End If
If Decompress = True Then Call DeCompress_LZW_LZSS(WorkArray)
Case 22
If Decompress = False Then
ChooseDictSize.Show 1
Call Compress_LZW_MultyDict4(WorkArray)
End If
If Decompress = True Then Call DeCompress_LZW_MultyDict4(WorkArray)
Case 23
If Decompress = False Then Call Compress_Reducer(WorkArray)
If Decompress = True Then Call DeCompress_Reducer(WorkArray)
Case 24
If Decompress = False Then Call Compress_ReducerDynamic(WorkArray)
If Decompress = True Then Call DeCompress_ReducerDynamic(WorkArray)
Case 25
If Decompress = False Then Call Compress_ReducerDynamicPre(WorkArray, 1)
If Decompress = True Then Call DeCompress_ReducerDynamicPre(WorkArray, 1)
Case 26
If Decompress = False Then Call Compress_ReducerDynamicPre(WorkArray, 2)
If Decompress = True Then Call DeCompress_ReducerDynamicPre(WorkArray, 2)
Case 27
If Decompress = False Then Call Compress_ReducerDynamicPre(WorkArray, 3)
If Decompress = True Then Call DeCompress_ReducerDynamicPre(WorkArray, 3)
Case 28
If Decompress = False Then Call Compress_ReducerDynamicPreHuff(WorkArray)
If Decompress = True Then Call DeCompress_ReducerDynamicPreHuff(WorkArray)
Case 29
If Decompress = False Then Call Compress_ReducerDynamicHalfDict(WorkArray)
If Decompress = True Then Call DeCompress_ReducerDynamicHalfDict(WorkArray)
Case 30
If Decompress = False Then Call Compress_ReducerDynamicDict16(WorkArray)
If Decompress = True Then Call DeCompress_ReducerDynamicDict16(WorkArray)
Case 31
If Decompress = False Then Call Compress_RLE(WorkArray)
If Decompress = True Then Call DeCompress_RLE(WorkArray)
Case 32
If Decompress = False Then Call Compress_RLE_Var(WorkArray, Dummy)
If Decompress = True Then Call DeCompress_RLE_Var(WorkArray)
Case 33
If Decompress = False Then Call Compress_RLE_Var_Loop(WorkArray)
If Decompress = True Then Call DeCompress_RLE_Var_Loop(WorkArray)
Case 34
If Decompress = False Then
ChooseDictSize.Show 1
Call Compress_LZSS(WorkArray)
End If
If Decompress = True Then Call Decompress_LZSS(WorkArray)
Case 35
If Decompress = False Then Call Compress_SmartGrouping2(WorkArray)
If Decompress = True Then Call DeCompress_SmartGrouping2(WorkArray)
Case 36
If Decompress = False Then Call Compress_HuffShort16chars(WorkArray)
If Decompress = True Then Call Decompress_HuffShort16chars(WorkArray)
Case 37
If Decompress = False Then Call Compress_Arithmetic(WorkArray)
If Decompress = True Then Call DeCompress_Arithmetic(WorkArray)
Case 38
If Decompress = False Then Call Compress_LBE(WorkArray, 1)
If Decompress = True Then Call DeCompress_LBE(WorkArray, 1)
Case 39
If Decompress = False Then Call Compress_LBE(WorkArray, 2)
If Decompress = True Then Call DeCompress_LBE(WorkArray, 2)
Case 40
If Decompress = False Then Call Compress_LBE(WorkArray, 3)
If Decompress = True Then Call DeCompress_LBE(WorkArray, 3)
Case 41
If Decompress = False Then Call Compress_ArithMetic_DMC(WorkArray)
If Decompress = True Then Call DeCompress_ArithMetic_DMC(WorkArray)
Case 42
If Decompress = False Then Call Compress_Eliminator_Loop(WorkArray)
If Decompress = True Then Call DeCompress_Eliminator_Loop(WorkArray)
Case 43
If Decompress = False Then Call Compress_arithmetic_Dynamic(WorkArray)
If Decompress = True Then Call DeCompress_arithmetic_Dynamic(WorkArray)
Case 44
If Decompress = False Then Call Compress_ReducerDynamicGol(WorkArray)
If Decompress = True Then Call DeCompress_ReducerDynamicGol(WorkArray)
Case 45
If Decompress = False Then Call Compress_ReducerDynamicEG(WorkArray)
If Decompress = True Then Call DeCompress_ReducerDynamicEG(WorkArray)
Case 46
If Decompress = False Then Call Compress_ari_ShortDict(WorkArray)
If Decompress = True Then Call DeCompress_ari_ShortDict(WorkArray)
Case 47
AritmaticRescale = True
If Decompress = False Then Call Compress_ari_ShortDict(WorkArray)
If Decompress = True Then Call DeCompress_ari_ShortDict(WorkArray)
AritmaticRescale = False
Case 48
AritmaticRescale = True
If Decompress = False Then Call Compress_ArithMetic_DMC(WorkArray)
If Decompress = True Then Call DeCompress_ArithMetic_DMC(WorkArray)
AritmaticRescale = False
Case 49
If Decompress = False Then Call Compress_Orderer(WorkArray)
If Decompress = True Then Call DeCompress_Orderer(WorkArray)
Case 50
If Decompress = False Then Call Compress_VBC_Dynamic(WorkArray)
If Decompress = True Then Call DeCompress_VBC_Dynamic(WorkArray)
Case 51
If Decompress = False Then Call Compress_VBC_Dynamic2(WorkArray)
If Decompress = True Then Call DeCompress_VBC_Dynamic2(WorkArray)
Case 52
If Decompress = False Then Call Compress_Stripper(WorkArray)
If Decompress = True Then Call DeCompress_Stripper(WorkArray)
Case 53
If Decompress = False Then Call Compress_Huffman_Dynamic(WorkArray)
If Decompress = True Then Call DeCompress_Huffman_Dynamic(WorkArray)
Case 54
If Decompress = False Then frmParingType.Show vbModal
DoEvents
If Decompress = False Then Call Compress_Pairs(WorkArray)
If Decompress = True Then Call DeCompress_Pairs(WorkArray)
Case 55
If Decompress = False Then frmParingType.Show vbModal
DoEvents
If Decompress = False Then Call Compress_Pairs128(WorkArray)
If Decompress = True Then Call DeCompress_Pairs128(WorkArray)
Case 56
If Decompress = False Then
ChooseDictSize.Show 1
Call Compress_LZSSLazy(WorkArray)
End If
If Decompress = True Then Call DeCompress_LZSSLazy(WorkArray)
Case 57
If Decompress = False Then
ChooseDictSize.Show 1
Call Compress_LZW_Static_Hash(WorkArray)
End If
If Decompress = True Then Call DeCompress_LZW_Static_Hash(WorkArray)
Case 58
If Decompress = False Then
ChooseDictSize.Show 1
Call Compress_LZW_Dynamic_Hash(WorkArray)
End If
If Decompress = True Then Call DeCompress_LZW_Dynamic_Hash(WorkArray)
Case 59
If Decompress = False Then Call Compress_Huffman_Non_Greedy(WorkArray)
If Decompress = True Then Call DeCompress_Huffman_Non_Greedy(WorkArray)
Case 60
If Decompress = False Then Call Compress_Huffman_Non_Greedy2(WorkArray)
If Decompress = True Then Call DeCompress_Huffman_Non_Greedy2(WorkArray)
Case 61
If Decompress = False Then Call Compress_Shortener(WorkArray)
If Decompress = True Then Call DeCompress_Shortener(WorkArray)
Case 62
If Decompress = False Then Call Compress_RLE_3(WorkArray)
If Decompress = True Then Call DeCompress_RLE_3(WorkArray)
Case 63
If Decompress = False Then
ChooseDictSize.Show 1
Call Compress_LZSS2(WorkArray)
End If
If Decompress = True Then Call Decompress_LZSS2(WorkArray)
Case 64
If Decompress = False Then
ChooseDictSize.Show 1
Call Compress_LZSS3(WorkArray)
End If
If Decompress = True Then Call Decompress_LZSS3(WorkArray)
End Select
Master.MousePointer = MousePointerConstants.vbDefault
If AutoDecodeIsOn = False Then
Call Show_Statistics(False, WorkArray, Timer - StTime)
End If
End Sub
'this sub is used to load a chosen file
Public Sub load_File(Name As String)
Dim FreeNum As Integer
If Name = "" Then Exit Sub
FreeNum = FreeFile
Open Name For Binary As #FreeNum
ReDim OriginalArray(0 To LOF(FreeNum) - 1)
Get #FreeNum, , OriginalArray()
Close #FreeNum
JustLoaded = True
Call Split_Header_From_File(OriginalArray)
Master.Caption = "21种加密54种压缩 V1.04 海阔天空收集整理 http://www.play78.com [file = " & LoadFileName & "]"
OriginalSize = UBound(OriginalArray) + 1
Call Show_Statistics(True, OriginalArray)
End Sub
'this sub is used to see if the file just loaded is a file which is
'stored by this programm and is already coded/compressed
Private Sub Split_Header_From_File(ByteArray() As Byte)
Dim HeadText As String
Dim X As Integer
Dim CodecsUsed As Integer
Dim Version As String
Dim InPos As Long
If UBound(ByteArray) < 3 Then Exit Sub 'original file to small
InPos = UBound(ByteArray)
For X = 0 To 2
HeadText = HeadText & Chr(ByteArray(InPos))
InPos = InPos - 1
Next
If HeadText <> "UCF" Then Exit Sub 'this is an un-UCF'ed file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -