Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,11 +0,0 @@
|
|||
package LZW is
|
||||
|
||||
MAX_CODE : constant := 4095;
|
||||
|
||||
type Codes is new Natural range 0 .. MAX_CODE;
|
||||
type Compressed_Data is array (Positive range <>) of Codes;
|
||||
|
||||
function Compress (Cleartext : in String) return Compressed_Data;
|
||||
function Decompress (Data : in Compressed_Data) return String;
|
||||
|
||||
end LZW;
|
||||
|
|
@ -1,116 +0,0 @@
|
|||
with Ada.Containers.Ordered_Maps;
|
||||
with Ada.Strings.Unbounded;
|
||||
|
||||
package body LZW is
|
||||
package UStrings renames Ada.Strings.Unbounded;
|
||||
use type UStrings.Unbounded_String;
|
||||
|
||||
--------------
|
||||
-- Compress --
|
||||
--------------
|
||||
|
||||
function Compress (Cleartext : in String) return Compressed_Data is
|
||||
-- translate String to Code-ID
|
||||
package String_To_Code is new Ada.Containers.Ordered_Maps (
|
||||
Key_Type => UStrings.Unbounded_String,
|
||||
Element_Type => Codes);
|
||||
|
||||
Dictionary : String_To_Code.Map;
|
||||
-- Next unused Code-ID
|
||||
Next_Entry : Codes := 256;
|
||||
|
||||
-- maximum same length as input, compression ratio always >=1.0
|
||||
Result : Compressed_Data (1 .. Cleartext'Length);
|
||||
-- position for next Code-ID
|
||||
Result_Index : Natural := 1;
|
||||
|
||||
-- current and next input string
|
||||
Current_Word : UStrings.Unbounded_String :=
|
||||
UStrings.Null_Unbounded_String;
|
||||
Next_Word : UStrings.Unbounded_String :=
|
||||
UStrings.Null_Unbounded_String;
|
||||
begin
|
||||
-- initialize Dictionary
|
||||
for C in Character loop
|
||||
String_To_Code.Insert
|
||||
(Dictionary,
|
||||
UStrings.Null_Unbounded_String & C,
|
||||
Character'Pos (C));
|
||||
end loop;
|
||||
|
||||
for Index in Cleartext'Range loop
|
||||
-- add character to current word
|
||||
Next_Word := Current_Word & Cleartext (Index);
|
||||
if String_To_Code.Contains (Dictionary, Next_Word) then
|
||||
-- already in dictionary, continue with next character
|
||||
Current_Word := Next_Word;
|
||||
else
|
||||
-- insert code for current word to result
|
||||
Result (Result_Index) :=
|
||||
String_To_Code.Element (Dictionary, Current_Word);
|
||||
Result_Index := Result_Index + 1;
|
||||
-- add new Code to Dictionary
|
||||
String_To_Code.Insert (Dictionary, Next_Word, Next_Entry);
|
||||
Next_Entry := Next_Entry + 1;
|
||||
-- reset current word to one character
|
||||
Current_Word := UStrings.Null_Unbounded_String &
|
||||
Cleartext (Index);
|
||||
end if;
|
||||
end loop;
|
||||
-- Last word was not entered
|
||||
Result (Result_Index) :=
|
||||
String_To_Code.Element (Dictionary, Current_Word);
|
||||
-- return correct array size
|
||||
return Result (1 .. Result_Index);
|
||||
end Compress;
|
||||
|
||||
----------------
|
||||
-- Decompress --
|
||||
----------------
|
||||
|
||||
function Decompress (Data : in Compressed_Data) return String is
|
||||
-- translate Code-ID to String
|
||||
type Code_To_String is array (Codes) of UStrings.Unbounded_String;
|
||||
|
||||
Dictionary : Code_To_String;
|
||||
-- next unused Code-ID
|
||||
Next_Entry : Codes := 256;
|
||||
|
||||
-- initialize resulting string as empty string
|
||||
Result : UStrings.Unbounded_String := UStrings.Null_Unbounded_String;
|
||||
|
||||
Next_Code : Codes;
|
||||
-- first code has to be in dictionary
|
||||
Last_Code : Codes := Data (1);
|
||||
-- suffix appended to last string for new dictionary entry
|
||||
Suffix : Character;
|
||||
begin
|
||||
-- initialize Dictionary
|
||||
for C in Character loop
|
||||
Dictionary (Codes (Character'Pos (C))) :=
|
||||
UStrings.Null_Unbounded_String & C;
|
||||
end loop;
|
||||
|
||||
-- output first Code-ID
|
||||
UStrings.Append (Result, Dictionary (Last_Code));
|
||||
for Index in 2 .. Data'Last loop
|
||||
Next_Code := Data (Index);
|
||||
if Next_Code <= Next_Entry then
|
||||
-- next Code-ID already in dictionary -> append first char
|
||||
Suffix := UStrings.Element (Dictionary (Next_Code), 1);
|
||||
else
|
||||
-- next Code-ID not in dictionary -> use char from last ID
|
||||
Suffix := UStrings.Element (Dictionary (Last_Code), 1);
|
||||
end if;
|
||||
-- expand the dictionary
|
||||
Dictionary (Next_Entry) := Dictionary (Last_Code) & Suffix;
|
||||
Next_Entry := Next_Entry + 1;
|
||||
-- output the current Code-ID to result
|
||||
UStrings.Append (Result, Dictionary (Next_Code));
|
||||
Last_Code := Next_Code;
|
||||
end loop;
|
||||
-- return String
|
||||
return UStrings.To_String (Result);
|
||||
end Decompress;
|
||||
|
||||
end LZW;
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
with LZW;
|
||||
with Ada.Text_IO;
|
||||
|
||||
procedure Test is
|
||||
package Text_IO renames Ada.Text_IO;
|
||||
package Code_IO is new Ada.Text_IO.Integer_IO (LZW.Codes);
|
||||
|
||||
Test_Data : constant LZW.Compressed_Data :=
|
||||
LZW.Compress ("TOBEORNOTTOBEORTOBEORNOT");
|
||||
begin
|
||||
for Index in Test_Data'Range loop
|
||||
Code_IO.Put (Test_Data (Index), 0);
|
||||
Text_IO.Put (" ");
|
||||
end loop;
|
||||
Text_IO.New_Line;
|
||||
declare
|
||||
Cleartext : constant String := LZW.Decompress (Test_Data);
|
||||
begin
|
||||
Text_IO.Put_Line (Cleartext);
|
||||
end;
|
||||
end Test;
|
||||
|
|
@ -3,11 +3,11 @@ compress: function [str][
|
|||
loop 0..255 'i -> dict\[to :char i]: i
|
||||
|
||||
w: ""
|
||||
result: new []
|
||||
result: []
|
||||
loop str 'c [
|
||||
wc: w ++ c
|
||||
if? key? dict wc -> w: wc
|
||||
else [
|
||||
switch key? dict wc -> w: wc
|
||||
[
|
||||
'result ++ dict\[w]
|
||||
dict\[wc]: size dict
|
||||
w: to :string c
|
||||
|
|
@ -30,10 +30,10 @@ decompress: function [compressed][
|
|||
result: w
|
||||
loop arr 'k [
|
||||
entry: ""
|
||||
if? key? dict k -> entry: dict\[k]
|
||||
else [
|
||||
if? k = size dict -> entry: w ++ first w
|
||||
else -> panic ~"Error with compressed: |k|"
|
||||
switch key? dict k -> entry: dict\[k]
|
||||
[
|
||||
switch k = size dict -> entry: w ++ first w
|
||||
-> panic ~"Error with compressed: |k|"
|
||||
]
|
||||
'result ++ entry
|
||||
dict\[size dict]: w ++ first entry
|
||||
|
|
|
|||
|
|
@ -1,50 +0,0 @@
|
|||
function compressLZW(decompressed::String)
|
||||
dictsize = 256
|
||||
dict = Dict{String,Int}(string(Char(i)) => i for i in 0:dictsize)
|
||||
result = Vector{Int}(undef, 0)
|
||||
w = ""
|
||||
for c in decompressed
|
||||
wc = string(w, c)
|
||||
if haskey(dict, wc)
|
||||
w = wc
|
||||
else
|
||||
push!(result, dict[w])
|
||||
dict[wc] = dictsize
|
||||
dictsize += 1
|
||||
w = string(c)
|
||||
end
|
||||
end
|
||||
if !isempty(w) push!(result, dict[w]) end
|
||||
return result
|
||||
end
|
||||
|
||||
function decompressLZW(compressed::Vector{Int})
|
||||
dictsize = 256
|
||||
dict = Dict{Int,String}(i => string('\0' + i) for i in 0:dictsize)
|
||||
result = IOBuffer()
|
||||
w = string(Char(popfirst!(compressed)))
|
||||
write(result, w)
|
||||
for k in compressed
|
||||
if haskey(dict, k)
|
||||
entry = dict[k]
|
||||
elseif k == dictsize
|
||||
entry = string(w, w[1])
|
||||
else
|
||||
error("bad compressed k: $k")
|
||||
end
|
||||
write(result, entry)
|
||||
dict[dictsize] = string(w, entry[1])
|
||||
dictsize += 1
|
||||
w = entry
|
||||
end
|
||||
return String(take!(result))
|
||||
end
|
||||
|
||||
original = ["0123456789", "TOBEORNOTTOBEORTOBEORNOT", "dudidudidudida"]
|
||||
compressed = compressLZW.(original)
|
||||
decompressed = decompressLZW.(compressed)
|
||||
|
||||
for (word, comp, decomp) in zip(original, compressed, decompressed)
|
||||
comprate = (length(word) - length(comp)) / length(word) * 100
|
||||
println("Original: $word\n-> Compressed: $comp (compr.rate: $(round(comprate, digits=2))%)\n-> Decompressed: $decomp")
|
||||
end
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
(phixonline)-->
|
||||
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
|
||||
<span style="color: #008080;">function</span> <span style="color: #000000;">compress</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">uncompressed</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">dict</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">new_dict</span><span style="color: #0000FF;">()</span>
|
||||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">result</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{}</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">dictSize</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">255</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">c</span>
|
||||
<span style="color: #004080;">string</span> <span style="color: #000000;">word</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">""</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">0</span> <span style="color: #008080;">to</span> <span style="color: #000000;">255</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #7060A8;">setd</span><span style="color: #0000FF;">(</span><span style="color: #008000;">""</span><span style="color: #0000FF;">&</span><span style="color: #000000;">i</span><span style="color: #0000FF;">,</span><span style="color: #000000;">i</span><span style="color: #0000FF;">,</span><span style="color: #000000;">dict</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">uncompressed</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #000000;">c</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">uncompressed</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #7060A8;">getd_index</span><span style="color: #0000FF;">(</span><span style="color: #000000;">word</span><span style="color: #0000FF;">&</span><span style="color: #000000;">c</span><span style="color: #0000FF;">,</span><span style="color: #000000;">dict</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #000000;">word</span> <span style="color: #0000FF;">&=</span> <span style="color: #000000;">c</span>
|
||||
<span style="color: #008080;">else</span>
|
||||
<span style="color: #000000;">result</span> <span style="color: #0000FF;">&=</span> <span style="color: #7060A8;">getd</span><span style="color: #0000FF;">(</span><span style="color: #000000;">word</span><span style="color: #0000FF;">,</span><span style="color: #000000;">dict</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #000000;">dictSize</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
|
||||
<span style="color: #7060A8;">setd</span><span style="color: #0000FF;">(</span><span style="color: #000000;">word</span><span style="color: #0000FF;">&</span><span style="color: #000000;">c</span><span style="color: #0000FF;">,</span><span style="color: #000000;">dictSize</span><span style="color: #0000FF;">,</span><span style="color: #000000;">dict</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #000000;">word</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">""</span><span style="color: #0000FF;">&</span><span style="color: #000000;">c</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #000000;">word</span><span style="color: #0000FF;">!=</span><span style="color: #008000;">""</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #000000;">result</span> <span style="color: #0000FF;">&=</span> <span style="color: #7060A8;">getd</span><span style="color: #0000FF;">(</span><span style="color: #000000;">word</span><span style="color: #0000FF;">,</span><span style="color: #000000;">dict</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #7060A8;">destroy_dict</span><span style="color: #0000FF;">(</span><span style="color: #000000;">dict</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">return</span> <span style="color: #000000;">result</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
|
||||
|
||||
<span style="color: #008080;">function</span> <span style="color: #000000;">decompress</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">compressed</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">dict</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">new_dict</span><span style="color: #0000FF;">()</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">dictSize</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">255</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">k</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">ki</span>
|
||||
<span style="color: #004080;">string</span> <span style="color: #000000;">dent</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">""</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">result</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">""</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">word</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">""</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">0</span> <span style="color: #008080;">to</span> <span style="color: #000000;">255</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #7060A8;">setd</span><span style="color: #0000FF;">(</span><span style="color: #000000;">i</span><span style="color: #0000FF;">,</span><span style="color: #008000;">""</span><span style="color: #0000FF;">&</span><span style="color: #000000;">i</span><span style="color: #0000FF;">,</span><span style="color: #000000;">dict</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">compressed</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #000000;">k</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">compressed</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span>
|
||||
<span style="color: #000000;">ki</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">getd_index</span><span style="color: #0000FF;">(</span><span style="color: #000000;">k</span><span style="color: #0000FF;">,</span><span style="color: #000000;">dict</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #000000;">ki</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #000000;">dent</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">getd_by_index</span><span style="color: #0000FF;">(</span><span style="color: #000000;">ki</span><span style="color: #0000FF;">,</span><span style="color: #000000;">dict</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">elsif</span> <span style="color: #000000;">k</span><span style="color: #0000FF;">=</span><span style="color: #000000;">dictSize</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #000000;">dent</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">word</span><span style="color: #0000FF;">&</span><span style="color: #000000;">word</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span>
|
||||
<span style="color: #008080;">else</span>
|
||||
<span style="color: #008080;">return</span> <span style="color: #0000FF;">{</span><span style="color: #004600;">NULL</span><span style="color: #0000FF;">,</span><span style="color: #000000;">i</span><span style="color: #0000FF;">}</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #000000;">result</span> <span style="color: #0000FF;">&=</span> <span style="color: #000000;">dent</span>
|
||||
<span style="color: #7060A8;">setd</span><span style="color: #0000FF;">(</span><span style="color: #000000;">dictSize</span><span style="color: #0000FF;">,</span><span style="color: #000000;">word</span><span style="color: #0000FF;">&</span><span style="color: #000000;">dent</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">],</span><span style="color: #000000;">dict</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #000000;">dictSize</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
|
||||
<span style="color: #000000;">word</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">dent</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #7060A8;">destroy_dict</span><span style="color: #0000FF;">(</span><span style="color: #000000;">dict</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">return</span> <span style="color: #000000;">result</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
|
||||
|
||||
<span style="color: #008080;">constant</span> <span style="color: #000000;">example</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"TOBEORNOTTOBEORTOBEORNOT"</span>
|
||||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">com</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">compress</span><span style="color: #0000FF;">(</span><span style="color: #000000;">example</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #7060A8;">pp</span><span style="color: #0000FF;">(</span><span style="color: #000000;">com</span><span style="color: #0000FF;">,{</span><span style="color: #004600;">pp_IntCh</span><span style="color: #0000FF;">,</span><span style="color: #004600;">true</span><span style="color: #0000FF;">,</span><span style="color: #004600;">pp_Maxlen</span><span style="color: #0000FF;">,</span><span style="color: #000000;">90</span><span style="color: #0000FF;">})</span>
|
||||
<span style="color: #0000FF;">?</span><span style="color: #000000;">decompress</span><span style="color: #0000FF;">(</span><span style="color: #000000;">com</span><span style="color: #0000FF;">)</span>
|
||||
<!--
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
Option Explicit
|
||||
Const numchars=127 'plain ASCII
|
||||
|
||||
Function LZWCompress(si)
|
||||
Dim oDict, intMaxCode, i,z,ii,ss,strCurrent,strNext,j
|
||||
Set oDict = CreateObject("Scripting.Dictionary")
|
||||
ReDim a(Len(si))
|
||||
|
||||
intMaxCode = numchars
|
||||
For i = 0 To numchars
|
||||
oDict.Add Chr(i), i
|
||||
Next
|
||||
'strCurrent = ofread.ReadText(1)
|
||||
strCurrent = Left(si,1)
|
||||
j=0
|
||||
For ii=2 To Len(si)
|
||||
strNext = Mid(si,ii,1)
|
||||
ss=strCurrent & strNext
|
||||
If oDict.Exists(ss) Then
|
||||
strCurrent = ss
|
||||
Else
|
||||
a(j)=oDict.Item(strCurrent) :j=j+1
|
||||
intMaxCode = intMaxCode + 1
|
||||
oDict.Add ss, intMaxCode
|
||||
strCurrent = strNext
|
||||
End If
|
||||
Next
|
||||
a(j)=oDict.Item(strCurrent)
|
||||
ReDim preserve a(j)
|
||||
LZWCompress=a
|
||||
Set oDict = Nothing
|
||||
End Function
|
||||
|
||||
Function lzwUncompress(sc)
|
||||
Dim intNext, intCurrent, intMaxCode, i,ss,istr,s,j
|
||||
s=""
|
||||
reDim dict(1000)
|
||||
intMaxCode = numchars
|
||||
For i = 0 To numchars : dict(i)= Chr(i) : Next
|
||||
intCurrent=sc(0)
|
||||
|
||||
For j=1 To UBound(sc)
|
||||
ss=dict(intCurrent)
|
||||
s= s & ss
|
||||
intMaxCode = intMaxCode + 1
|
||||
intnext=sc(j)
|
||||
If intNext<intMaxCode Then
|
||||
dict(intMaxCode)=ss & Left(dict(intNext), 1)
|
||||
Else
|
||||
dict(intMaxCode)=ss & Left(ss, 1)
|
||||
End If
|
||||
intCurrent = intNext
|
||||
Next
|
||||
s= s & dict(intCurrent)
|
||||
lzwUncompress=s
|
||||
End function
|
||||
|
||||
Sub printvec(a)
|
||||
Dim s,i,x
|
||||
s="("
|
||||
For i=0 To UBound (a)
|
||||
s=s & x & a(i)
|
||||
x=", "
|
||||
Next
|
||||
WScript.echo s &")"
|
||||
End sub
|
||||
|
||||
Dim a,b
|
||||
b="TOBEORNOTTOBEORTOBEORNOT"
|
||||
WScript.Echo b
|
||||
a=LZWCompress (b)
|
||||
printvec(a)
|
||||
WScript.echo lzwUncompress (a )
|
||||
wscript.quit 1
|
||||
Loading…
Add table
Add a link
Reference in a new issue