=encoding euc-jp =head1 名前 File::Binary - バイナリ・ファイル読込モジュール =head1 概要 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(); # などなど =head1 説明 Bはバイナリ・ファイルを読み込むモジュールです。 それゆえにこうした名前です。 そして元々は、Macromedia SWFファイルを扱うためのモジュールの組み合わせを 書くために使われました。 しかしそれを、そして今や実際にエラーや作業を乗り越え成長しました。 そして汎用化されました。そして全てを!イエイ! (訳者注:よくわかりませんでした...なんとなくこんなことかと) 符号付(signed)、符号無し(unsigned)のの8、16、32ビットの整数を読み 書きするメソッドを持ち、将来のいずれかの時点で、きちんと>32ビットの 整数のためのメソッドを入れるつもりです。それまでパッチを歓迎します。 目的を明確にし、古いインターフェースは脳死状態(pretty brain dead)で あったため、古いバージョンとの後方互換性を維持していません。 =head1 メソッド =head2 new ファイル名あるいはIO::Handleのisaのいずれか(訳者注:サブクラスのこと) を渡します。 =head2 open ファイル名あるいはIO::Handleのisaのいずれか(訳者注:サブクラスのこと) を渡します。 =head2 seek 位置をseekします。 現在の位置を返します。もしファイル・ハンドルがB でなければ、0を返し、そしてB<$File::Binary::DEBUG>が1に設定されていたら、 警告を出します。 現在のファイル位置を返します。 =head2 tell 現在の位置を返します。もしファイル・ハンドルがB でなければ、0を返し、そしてB<$File::Binary::DEBUG>が1に設定されていたら、 警告を出します。 =head2 set_flush flushするあるいは、flushしないようにします。それが問題だ。 =head2 set_endian モジュールがどのようにファイルを読むかを設定します。オプションは以下の通り $BIG_ENDIAN $LITTLE_ENDIAN $NATIVE_ENDIAN Iは現在のシステムのエンディアンを推測します。 =head2 get_bytes ファイルから任意の数のバイトを取得します。 =head2 put_bytes いくらかのバイトを出力します。 =head2 get_ui8 get_si8 put_ui8 put_si8 符号付、符号無しの8ビット整数値を読み、書きします。 =head2 get_ui16 get_si16 put_ui16 put_si16 符号付、符号無しの16ビット整数値を読み、書きします。 =head2 get_ui32 get_s32 put_ui32 put_si32 符号付、符号無しの32ビット整数値を読み、書きします。 =head2 guess_endian このシステムのエンディアンを応えます。I<$LITTLE_ENDIAN>、 I<$BIG_ENDIAN>をいずれか返します。 =head2 close ファイルを閉じます。Iオブジェクトは他のファイルを オープンするまで利用することはできません。 =pod =head1 バグ 32ビット以上の数値を扱うことはできません。 浮動小数点、固定小数点の数値を取り出すことはできません。 ヌル文字で終わる文字列を取り出すことはできません。 seekとtellについてはテストが必要です。 =head1 著作権(=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 =head1 作者 Copyright 2003, Simon Wistow =head1 翻訳者 川合 孝典(GCD00051@nifty.ne.jp)