種類
- 特異メソッド (22)
- インスタンスメソッド (22)
ライブラリ
- zlib (44)
クラス
-
Zlib
:: Deflate (22) -
Zlib
:: GzipWriter (11) -
Zlib
:: Inflate (11)
キーワード
- new (11)
-
set
_ dictionary (22)
検索結果
先頭4件
-
Zlib
:: Deflate . deflate(string , level = Zlib :: DEFAULT _ COMPRESSION) -> String (27255.0) -
string を圧縮します。level の有効な値は Zlib::NO_COMPRESSION, Zlib::BEST_SPEED, Zlib::BEST_COMPRESSION, Zlib::DEFAULT_COMPRESSION 及び 0 から 9 の整数です。
...level の有効な値は
Zlib::NO_COMPRESSION, Zlib::BEST_SPEED,
Zlib::BEST_COMPRESSION, Zlib::DEFAULT_COMPRESSION
及び 0 から 9 の整数です。
ちなみに、このメソッドは以下のコードとほぼ同じです:
require 'zlib'
def deflate(string, level)
z = Zlib::Deflate.......new(level)
dst = z.deflate(string, Zlib::FINISH)
z.close
dst
end
@param string 圧縮する文字列を指定します。
@param level 圧縮の水準を詳細に指定します。
有効な値は Zlib::NO_COMPRESSION, Zlib::BEST_SPEED,
Zlib::BEST_COMPRESSIO......N, Zlib::DEFAULT_COMPRESSION 及び 0 から 9 の整数です。
使用例
require 'zlib'
srand(1)
str = (1..500).collect{
['A', 'T', 'C', 'G'].at(rand(4))
}.join
p str.size #=> 500
[ Zlib::NO_COMPRESSION,
Zlib::BEST_SPEED,
Zlib::BEST_COMPRESSION,
Zlib::DEFAULT_COMPR... -
Zlib
:: Deflate # set _ dictionary(string) -> String (6058.0) -
圧縮に用いる辞書を指定します。string を返します。 このメソッドは Zlib::Deflate.new, Zlib::ZStream#reset を呼び出した直後にのみ有効です。詳細は zlib.h を参照して下さい。
...ing を返します。
このメソッドは Zlib::Deflate.new, Zlib::ZStream#reset
を呼び出した直後にのみ有効です。詳細は zlib.h を参照して下さい。
@param string 辞書に用いる文字列を指定します。詳しくは zlib.h を参照してください。
@return......'zlib'
def case1(str)
dez = Zlib::Deflate.new
comp_str = dez.deflate(str)
comp_str << dez.finish
comp_str.size
end
def case2(str, dict)
dez = Zlib::Deflate.new
p dez.set_dictionary(dict)
comp_str = dez.deflate(str)
comp_str << dez.finish
comp_str.size......sset = [ dict, 'taeagbamike', 'ugotagma', 'fugebogya' ]
g = [ 0, 1, 1, 1, 0, 0, 0, 3, 3, 3, 0, 0, 1, 1, 0, 0, 0, 1, 2, 2, 0, 0, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0]
str = (1..i).collect{|m| t = rand(g.size); sset.at(g[t])}.join("")
printf "%d normal:%d, dict:%d\n", i, case1(str), case2(str, dict)... -
Zlib
:: GzipWriter . new(io , level = Zlib :: DEFAULT _ COMPRESSION , strategy = Zlib :: DEFAULT _ STRATEGY) -> Zlib :: GzipWriter (3122.0) -
io と関連付けられた GzipWriter オブジェクトを作成します。 level, strategy は Zlib::Deflate.new と同じです。 GzipWriter オブジェクトは io に gzip 形式のデータを 逐次ライトします。io には少なくとも、IO#write と 同じ動作をする write メソッドが定義されている必要があります。
...io と関連付けられた GzipWriter オブジェクトを作成します。
level, strategy は Zlib::Deflate.new と同じです。
GzipWriter オブジェクトは io に gzip 形式のデータを
逐次ライトします。io には少なくとも、IO#write と
同じ動作をする write......aram level 0-9の範囲の整数を指定します。詳細はzlib.hを参照してください。
@param strategy Zlib::FILTERED, Zlib::HUFFMAN_ONLY, Zlib::DEFAULT_STRATEGYなど指定します。詳細はzlib.h を>参照してください。
require 'zlib'
filename='hoge1.gz'
f = File.o......pen(filename, "w")
gz = Zlib::GzipWriter.new(f)
gz.puts "hogehoge" * 100
gz.close
p gz.closed? #=> true
p FileTest.size(filename) #=> 32... -
Zlib
:: Inflate # set _ dictionary(string) -> String (3018.0) -
展開に用いる辞書を指定します。string を返します。 このメソッドは Zlib::NeedDict 例外が発生した直後のみ 有効です。詳細は zlib.h を参照して下さい。
...。
このメソッドは Zlib::NeedDict 例外が発生した直後のみ
有効です。詳細は zlib.h を参照して下さい。
@param string 展開に用いる辞書を文字列で指定します。
require 'zlib'
def case2(str, dict)
dez = Zlib::Deflate.new
dez.set_dictionary......ct)
comp_str = dez.deflate(str)
comp_str << dez.finish
comp_str.size
inz = Zlib::Inflate.new
begin
inz.inflate(comp_str)
rescue Zlib::NeedDict
end
# 展開に用いる辞書が必要です。
inz.set_dictionary(dict)
p inz.inflate(comp_str)
end
dict......= 'hoge_fuga_ugougo'
sset = [ dict, 'taeagbamike', 'ugotagma', 'fugebogya' ]
g = [ 0, 0, 0, 1, 1, 1, 0, 0, 0, 3, 3, 3, 0, 0, 1, 1,
0, 0, 0, 1, 2, 2, 0, 0, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0]
str = g.collect{|m| sset.at(m)}.join("")
case2(str, dict)...