File-Binary-1.1 > File::Binary

名前

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 <simon@thegestalt.org>

翻訳者

川合 孝典(GCD00051@nifty.ne.jp)