名前¶
File::Binary - バイナリ・ファイル読込モジュール
概要¶
use File::Binary qw($BIG_ENDIAN $LITTLE_ENDIAN $NATIVE_ENDIAN);
my $fb = File::Binary->new("myfile");
$fb->get_ui8();
$fb->get_ui16();
$fb->get_ui32();
$fb->get_si8();
$fb->get_si16();
$fb->get_si32();
$fb->close();
$fb->open(">newfile");
$fb->put_ui8(255);
$fb->put_ui16(65535);
$fb->put_ui32(4294967295);
$fb->put_si8(-127);
$fb->put_si16(-32767);
$fb->put_si32(-2147483645);
$fb->close();
$fb->open(IO::Scalar->new($somedata));
$fb->set_endian($BIG_ENDIAN); # force endianness
# do what they say on the tin
$fb->seek($pos);
$fb->tell();
# などなど
説明¶
File::Binaryはバイナリ・ファイルを読み込むモジュールです。 それゆえにこうした名前です。 そして元々は、Macromedia SWFファイルを扱うためのモジュールの組み合わせを 書くために使われました。
しかしそれを、そして今や実際にエラーや作業を乗り越え成長しました。 そして汎用化されました。そして全てを!イエイ! (訳者注:よくわかりませんでした...なんとなくこんなことかと)
符号付(signed)、符号無し(unsigned)のの8、16、32ビットの整数を読み 書きするメソッドを持ち、将来のいずれかの時点で、きちんと>32ビットの 整数のためのメソッドを入れるつもりです。それまでパッチを歓迎します。
目的を明確にし、古いインターフェースは脳死状態(pretty brain dead)で あったため、古いバージョンとの後方互換性を維持していません。
メソッド¶
new¶
ファイル名あるいはIO::Handleのisaのいずれか(訳者注:サブクラスのこと) を渡します。
open¶
ファイル名あるいはIO::Handleのisaのいずれか(訳者注:サブクラスのこと) を渡します。
seek¶
位置をseekします。
現在の位置を返します。もしファイル・ハンドルがIO::Seekableのサブクラス でなければ、0を返し、そして$File::Binary::DEBUGが1に設定されていたら、 警告を出します。
現在のファイル位置を返します。
tell¶
現在の位置を返します。もしファイル・ハンドルがIO::Seekableのサブクラス でなければ、0を返し、そして$File::Binary::DEBUGが1に設定されていたら、 警告を出します。
set_flush¶
flushするあるいは、flushしないようにします。それが問題だ。
set_endian¶
モジュールがどのようにファイルを読むかを設定します。オプションは以下の通り
$BIG_ENDIAN
$LITTLE_ENDIAN
$NATIVE_ENDIAN
NATIVEは現在のシステムのエンディアンを推測します。
get_bytes¶
ファイルから任意の数のバイトを取得します。
put_bytes¶
いくらかのバイトを出力します。
get_ui8 get_si8 put_ui8 put_si8¶
符号付、符号無しの8ビット整数値を読み、書きします。
get_ui16 get_si16 put_ui16 put_si16¶
符号付、符号無しの16ビット整数値を読み、書きします。
get_ui32 get_s32 put_ui32 put_si32¶
符号付、符号無しの32ビット整数値を読み、書きします。
guess_endian¶
このシステムのエンディアンを応えます。$LITTLE_ENDIAN、 $BIG_ENDIANをいずれか返します。
close¶
ファイルを閉じます。File::Binaryオブジェクトは他のファイルを オープンするまで利用することはできません。
バグ¶
32ビット以上の数値を扱うことはできません。
浮動小数点、固定小数点の数値を取り出すことはできません。
ヌル文字で終わる文字列を取り出すことはできません。
seekとtellについてはテストが必要です。
著作権(=COPYING)¶
(c)opyright 2002, Simon Wistow
Distributed under the same terms as Perl itself.
This software is under no warranty and will probably ruin your life, kill your friends, burn your house and bring about the apocalypse
作者¶
Copyright 2003, Simon Wistow <[email protected]>
翻訳者¶
川合 孝典([email protected])