別のキーワード
検索結果
先頭5件
-
Zlib
:: Inflate . inflate(string) -> String (21143.0) -
string を展開します。
...g を展開します。
ちなみに、このメソッドは以下のコードとほぼ同じです:
require 'zlib'
def inflate(string)
zstream = Zlib::Inflate.new
buf = zstream.inflate(string)
zstream.finish
zstream.close
buf
end
@param string 展開する文字列を......指定します。
@raise Zlib::NeedDict 展開に辞書が必要な場合に発生します。
require 'zlib'
cstr = "x\234\313\310OOUH+MOTH\315K\001\000!\251\004\276"
p Zlib::Inflate.inflate(cstr) #=> "hoge fuga end"... -
Zlib
:: Inflate # inflate(string) -> String (21125.0) -
string を展開ストリームに入力します。
...lib::Inflate#set_dictionary メソッドで辞書をセットした
後で、空文字列と共にこのメソッドを再度呼び出して下さい。
require 'zlib'
cstr = "x\234\313\310OOUH+MOTH\315K\001\000!\251\004\276"
inz = Zlib::Inflate.new
p inz.inflate(cstr... -
Zlib
:: Inflate . new(window _ bits = Zlib :: MAX _ WBITS) -> Zlib :: Inflate (3113.0) -
展開ストリームを作成します。
...nil の場合はデフォルトの値を使用します。
詳細は zlib.h を参照してください。
require 'zlib'
cstr = "x\234\313\310OOUH+MOTH\315K\001\000!\251\004\276"
inz = Zlib::Inflate.new(15)
inz << cstr
p inz.finish #=> "hoge fuga end"... -
Zlib
:: Inflate # <<(string) -> self (3060.0) -
Zlib::Inflate#inflate と同じように string を 展開ストリームに入力しますが、Zlib::Inflate オブジェクト そのものを返します。展開ストリームからの出力は、 出力バッファに保存されます。
...Zlib::Inflate#inflate と同じように string を
展開ストリームに入力しますが、Zlib::Inflate オブジェクト
そのものを返します。展開ストリームからの出力は、
出力バッファに保存されます。
require 'zlib'
cstr = "x\234\313\310OOUH+MOTH\3......15K\001\000!\251\004\276"
inz = Zlib::Inflate.new
inz << cstr[0, 10]
p inz.flush_next_out #=> "hoge fu"
inz << cstr[10..-1]
p inz.flush_next_out #=> "ga end"... -
Zlib
:: Inflate # set _ dictionary(string) -> String (3024.0) -
展開に用いる辞書を指定します。string を返します。 このメソッドは Zlib::NeedDict 例外が発生した直後のみ 有効です。詳細は zlib.h を参照して下さい。
...を文字列で指定します。
require 'zlib'
def case2(str, dict)
dez = Zlib::Deflate.new
dez.set_dictionary(dict)
comp_str = dez.deflate(str)
comp_str << dez.finish
comp_str.size
inz = Zlib::Inflate.new
begin
inz.inflate(comp_str)
rescue Zlib::NeedDic......t
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,... -
Zlib
:: Inflate # finish -> String (3012.0) -
展開ストリームを終了します。
...は必ずしも
ありませんが、このメソッドは圧縮データが正しく終了しているかを
確認するのに便利です。
require 'zlib'
cstr = "x\234\313\310OOUH+MOTH\315K\001\000!\251\004\276"
inz = Zlib::Inflate.new
inz << cstr
p inz.finish #=> "hoge fuga end"... -
Zlib
:: Deflate # flush(flush = Zlib :: SYNC _ FLUSH) -> String (30.0) -
deflate('', flush) と同じです。flush が 省略された時は Zlib::SYNC_FLUSH が使用されます。 このメソッドはスクリプトの可読性のために提供されています。
...USH などを指定します。
require 'zlib'
def case1
dez = Zlib::Deflate.new
comp_str = dez.deflate('hoge')
comp_str << dez.deflate(' fuga')
comp_str << dez.deflate(' end', Zlib::FINISH)
dez.close
p comp_str
p Zlib::Inflate.inflate(comp_str)
end
def case2......r << dez.deflate(' fuga')
comp_str << dez.flush
comp_str << dez.deflate(' end', Zlib::FINISH)
dez.close
p comp_str
p Zlib::Inflate.inflate(comp_str)
end
case1
case2
#=> "x\234\313\310OOUH+MOTH\315K\001\000!\251\004\276"
#=> "hoge fuga end"
#=> "x\234\312\310OO\005\00... -
Zlib
:: Deflate # params(level , strategy) -> nil (30.0) -
圧縮ストリームの設定を変更します。詳しくは zlib.h を 参照して下さい。設定の変更に伴うストリームからの出力は 出力バッファに保存されます。
...詳細は zlib.h を参照してください。
require 'zlib'
def case1
dez = Zlib::Deflate.new
comp_str = dez.deflate('hoge'*5);
comp_str << dez.deflate('0'*80)
comp_str << dez.finish
p comp_str
p Zlib::Inflate.inflate(comp_str)
end
def case2
dez = Zlib::Defl......z.params(Zlib::BEST_COMPRESSION, Zlib::HUFFMAN_ONLY)
comp_str << dez.deflate('0'*80)
comp_str << dez.finish
p comp_str
p Zlib::Inflate.inflate(comp_str)
end
case1
case2
#=> "x\234\313\310OO\315@\303\006T\006\000D\367\0270"
#=> "hogehogehogehogehoge0000000000000000000000000... -
Zlib
:: Deflate . deflate(string , level = Zlib :: DEFAULT _ COMPRESSION) -> String (24.0) -
string を圧縮します。level の有効な値は Zlib::NO_COMPRESSION, Zlib::BEST_SPEED, Zlib::BEST_COMPRESSION, Zlib::DEFAULT_COMPRESSION 及び 0 から 9 の整数です。
...ION, 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
@par......:NO_COMPRESSION, Zlib::BEST_SPEED,
Zlib::BEST_COMPRESSION, 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,......D,
Zlib::BEST_COMPRESSION,
Zlib::DEFAULT_COMPRESSION ].each { |level|
deflate_str = Zlib::Deflate.deflate(str, level)
p deflate_str.size
# 展開する場合は、下記を実行する
#puts Zlib::Inflate.inflate(str)
}
#出力例
#=> 511
#=> 200
#=> 194
#=> 194...