Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > zlibライブラリ > Zlib::GzipReaderクラス > lineno=
lineno=(num)
[permalink][rdoc]IO クラスの同名メソッドIO#lineno=と同じです。
但し、gzip ファイル中に エラーがあった場合 Zlib::Error 例外や Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。 gzip ファイルのフッターには圧縮前データのチェックサムが 記録されています。GzipReader オブジェクトは、次の時に展開した データとフッターの照合を行い、エラーがあった場合は Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, Zlib::GzipFile::LengthError 例外を発生させます。
require 'zlib' =begin # hoge.gz がない場合は下記で作成できる。 Zlib::GzipWriter.open('hoge.gz') { |gz| gz.puts 'h' gz.puts 'o' gz.puts 'g' gz.puts 'e' } =end Zlib::GzipReader.open('hoge.gz') { |gz| while l = gz.gets l.chomp! gz.lineno = 1000 if l == "o" printf "%s %d\n", l, gz.lineno end } #=> h 1 #=> o 1001 #=> g 1002 #=> e 1003
[SEE_ALSO] IO#lineno=