Binary

  • Importは生バイナリデータを,基本的な,または複合のデータ型の列として読み込む.
  • Exportは基本的な,または複合のデータ型の一様なリストからバイナリファイルを生成する.

予備知識予備知識

    バイナリデータオブジェクトの列.
    バイナリ形式
    簡単な,または複合されたデータ型の一様な列を保管する.

ImportとExportImportとExport

  • Import["file","Binary"]は任意のバイナリファイルをバイトのリストとしてインポートする.
  • Export["file",list,"Binary"]はバイトサイズの整数のリストをバイナリファイルにエキスポートする.
  • 生バイナリファイルをインポート,エキスポートするときは,形式を指定しなければならない.
  • Import["file",{"Binary",elem}]またはImport["file",elem ]はバイナリファイルから指定の要素をインポートする.
  • Import["file",{"Binary",{elem1,elem2,}}]は複数の要素をインポートする.
  • Export["\"\!\(\*\nStyleBox[\"file\", \"TI\"]\)\!\(\*\nStyleBox[\"\\\"\", \"TI\"]\)",expr,{"Binary",elem}]expr が要素elem を指定してるとしてバイナリファイルを作成する.
  • ImportExportについての一般的な情報は,関数ページを参照のこと.
  • ImportStringExportStringは生のバイナリファイルをサポートする.
  • BinaryReadBinaryWriteは生バイナリデータのストリームからの読込み,または書込みに使える.

要素要素

  • 一般的なImport要素:
  • "Elements" ファイル中の有効な要素とオプションのリスト
    "Rules"要素とオプションのそれぞれの全規則
    "Options"オプション,属性,設定の規則
  • データ表現要素:
  • "Bit"ゼロと1
    "Byte"0から255の範囲の整数
    "Character8"8ビット文字
    "Character16"16ビット文字
    "Integer8"8ビット符号付き文字
    "Integer16"16ビット符号付き文字
    "Integer24"24ビット符号付き文字
    "Integer32"32ビット符号付き文字
    "Integer64"64ビット符号付き文字
    "Integer128"128ビット符号付き文字
    "UnsignedInteger8"8ビット符号なし文字
    "UnsignedInteger16"16ビット符号なし文字
    "UnsignedInteger24"24ビット符号なし文字
    "UnsignedInteger32"32ビット符号なし文字
    "UnsignedInteger64"ビット符号なし文字
    "UnsignedInteger128"128ビット符号なし文字
    "Real32"IEEE単精度数
    "Real64"IEEE倍精度数
    "Real128"IEEE4倍精度数
    "Complex64"IEEE単精度複素数
    "Complex128"IEEE倍精度複素数
    "Complex256"IEEE4倍精度複素数
  • ImportExportはデフォルトで要素を使う.
  • どのようなデータ表現要素type についても,Import["file",type]Import["file",{"Binary",type}]の省略表現として使用できる.
  • 実数のImportでは,IEEEの「無限大」に対してはInfinityが,IEEEの「数値でないもの」に対しては Indeterminateが返される.
  • インポートされたファイルのサイズがデータサイズの倍数でない場合,余りのバイトは省略される.

オプションオプション

  • 一般的なオプション:
  • ByteOrdering-1使用するバイト順序
  • Importオプション:
  • "HeaderBytes"0ファイルの最初で何バイト省略するか
  • データ表現要素:
  • "DataFormat"Automatic混合オブジェクトを基本データ型のリストとして指定する
  • と設定すると,ImportExportは生バイナリファイルをという形のオブジェクトの列として解釈する.
  • Import["file","Binary","DataFormat"->{"Character8","Integer32"}]file を8ビット文字と32ビット文字の繰返しの列として読み込む.

例題例題すべて開くすべて閉じる

  (2)  (2)

文字列をバイト値の整数のリストに変換する:

In[1]:=
Click for copyable input
Out[1]=

形式指定は基本的なデータ型のインポートには省略できる.

In[2]:=
Click for copyable input
Out[2]=

整数と次数のペアを8ビット整数と倍精度実数のバイナリの列にエキスポートする:

In[1]:=
Click for copyable input
Out[1]=

前出力を数の配列に戻す:

In[2]:=
Click for copyable input
Out[2]=

各ペアがバイトに変換されたことを検証する:bytes:

In[3]:=
Click for copyable input
Out[3]=
2004年に導入
(5.1)
| 2007年に修正
(6.0)