[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

# 69. numericalio

[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

## 69.1 Introduction to numericalio

`numericalio`はファイルやストリームを読み書きする関数のコレクションです。 プレインテキスト入出力のための関数は、数(整数、浮動小数点、多倍長浮動小数点)やシンボル、 文字列を読み書きできます。 バイナリ入出力のための関数は、浮動小数点数だけを読み書きできます。

もし既に入力データを記憶すべきリスト、行列、配列オブジェクトがあるなら、 `numericalio`入力関数群はデータをそのオブジェクトに書き込むことができます。 そうでないなら、 `numericalio`はデータを記憶するオブジェクトの構造をある程度推測し、 そのオブジェクトを返します。

·

Categories: File input ·File output ·Share packages ·Package numericalio

[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

### 69.1.1 Plain-text input and output

プレインテキスト入出力では、 読み書きする項目それぞれがアトムであることが仮定されます: 整数、浮動小数点数、多倍長浮動小数点、文字列、シンボルであり、 有理数や複素数や他のどんなアトムでない式でもありません。 `numericalio`関数群は、アトムでない式に直面した時、 何か適当なことを試みるかもしれませんが、 結果はここで規定されず、変更の対象となります。

入力ファイルと出力ファイルどちらのアトムも、 Maximaバッチファイルや対話コンソールでのものと同じフォーマットを持ちます。 特に、文字列はダブルクォートで括られ、 バックスラッシュ `\`は次の文字の任意の特殊解釈を抑制し、クエスチョンマーク `?`は (Maximaシンボルではなく、) Lispシンボルを意味するシンボルの始まりとして認識されます。 (分割された行をつなぎ合わせる)いかなる継続文字も認識されません。

[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

### 69.1.2 Separator flag values for input

プレインテキスト入出力のための関数は、オプションの引数 separator_flagを取ります。 それはどの文字がデータを分離するかを示します。

プレインテキスト入力では、 separator_flagの以下の値が認識されます: コンマで区切られた値のための `comma`、 垂直バー文字 `|`で区切られた値のための `pipe`、 セミコロン `;`で区切られた値のための `semicolon`、 空白かタブ文字で区切られた値のための `space`。 もしファイル名が `.csv`で終わり、 separator_flagが指定されていないなら、 `comma`を仮定します。 もしファイル名が `.csv`以外の何かで終わり、 `separator_flag`が指定されていないなら、 `space`を仮定します。

プレインテキスト入力では、 複数続く空白とタブ文字は1つの区切り文字として数えられます． しかしながら、複数のコンマ、パイプまたはセミコロンは意味を持ちます。 連続するコンマ、パイプ、セミコロン文字は (空白やタブが間に入ろうが入るまいが) 区切り文字の間に `false`を持つと見なされます。 例えば、 `1234,,Foo`は `1234,false,Foo`と同じと扱われます。

[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

### 69.1.3 Separator flag values for output

プレインテキスト出力では、`comma`, `pipe`, `semicolon`, そして `space`はもちろん、タブ文字で区切られた値のための `tab`も、 separator_flagの値として認識されます。

プレインテキスト出力では、 `false`アトムは以下のように書かれます: リスト `[1234, false, Foo]`は `1234,false,Foo`と書かれ、 出力を `1234,,Foo`につぶすことはありません。

[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

### 69.1.4 Binary floating-point input and output

`numericalio`関数群は8バイトIEEE754浮動小数点数を読み書きすることができます。 これらの数は、 `assume_external_byte_order`で設定されたグローバルフラグに従って、 最下位バイトから順でも最上位バイトから順でも記憶することができます。

もし指定されないなら、 `numericalio`は外部バイト順は最上位バイトからと仮定します。

他の種類の数は8バイト浮動小数点に強制変換されます; `numericalio`はアトムでないバイナリデータを読み書きできません。

いくつかのLisp実装は IEEE 754の特殊値(正負の無限大、非数値、指数表現でない数)を認識しません。 `numericalio`でそんな値を読み込むことの効果は未定義です。

`numericalio`は バイトストリームを読んだり書いたりするためのストリームを開く関数を含みます。

[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

## 69.2 Functions and Variables for plain-text input and output

関数: read_matrix (S)
関数: read_matrix (S, M)
関数: read_matrix (S, separator_flag)
関数: read_matrix (S, M, separator_flag)

  `read_matrix(S)`は、 ソースSを読み込み、行列として内容全体を返します。 行列のサイズは入力データから推論されます; ファイルの行それぞれは行列の 1行になります。 もし複数の行が異なる長さを持つなら `read_matrix`はエラーを出力します。

  `read_matrix(S, M)`は、 Mが一杯になるか、ソースが尽きるまで、ソース Sを行列 Mに読み込みます。 入力データは行優先順に行列に読み込まれます; 入力は Mと同じ行数と列数を持つ必要はありません。

  ソース Sはファイル名かストリームかもしれません。

  separator_flagの認識される値は `comma`, `pipe`, `semicolon`, `space`です。 もし separator_flagを指定しないならファイルは空白で区切られていると仮定します。

  ·

  Categories: Package numericalio ·File input

関数: read_array (S, A)
関数: read_array (S, A, separator_flag)

  Aが一杯になるか、ソースが尽きるまで、ソース Sを配列 Aに読み込みます。 入力データは列優先順に配列に読み込まれます; 入力は Aの次元に一致する必要はありません。

  ソース Sはファイル名かストリームかもしれません。

  separator_flagの認識される値は `comma`, `pipe`, `semicolon`, `space`です。 もし separator_flagを指定しないならファイルは空白で区切られていると仮定します。

  ·

  Categories: Package numericalio ·File input

関数: read_hashed_array (S, A)
関数: read_hashed_array (S, A, separator_flag)

  ソース Sが読み込まれ、ハッシュ配列として内容全体が返されます。 ソース Sはファイル名かストリームかもしれません。

  `read_hashed_array`は、 それぞれの行の最初の項目をハッシュキーとして扱い、 行の残りを(リストとして)キーと結合します。 例えば、行 `567 12 17 32 55`は `A[567]: [12, 17, 32, 55]$`と同値です。 行数は要素数と同じである必要はありません。

  separator_flagの認識される値は `comma`, `pipe`, `semicolon`, `space`です。 もし separator_flagが指定しないならファイルは空白で区切られていると仮定します。

  ·

  Categories: Package numericalio ·File input

関数: read_nested_list (S)
関数: read_nested_list (S, separator_flag)

  ソース Sを読み込み、入れ子のリストとして内容全体を返します。 ソース Sはファイル名かストリームかもしれません。

  `read_nested_list`は入力のそれぞれの行について部分リストを持つリストを返します。 行数は要素数と同じである必要はありません。 空の行は無視されません: 空の行は空の部分リストをもたらします。

  separator_flagの認識される値は `comma`, `pipe`, `semicolon`, `space`です。 もし separator_flagを指定しないなら、ファイルは空白で区切られていると仮定します。

  ·

  Categories: Package numericalio ·File input

関数: read_list (S)
関数: read_list (S, L)
関数: read_list (S, separator_flag)
関数: read_list (S, L, separator_flag)

  `read_list(S)`は、ソース Sを読み込み、フラットなリストとして内容全体を返します。

  `read_list(S, L)`は、 Lが一杯になるかソースが尽きるまで、ソース Sをリスト Lに読み込みます。

  ソース Sはファイル名かストリームかもしれません。

  separator_flagの認識される値は `comma`, `pipe`, `semicolon`, `space`です。 もし separator_flagを指定しないなら、ファイルは空白で区切られていると仮定します。

  ·

  Categories: Package numericalio ·File input

関数: write_data (X, D)
関数: write_data (X, D, separator_flag)

  オブジェクト Xをデスティネーション Dに書き出します。

  `write_data`は行列を行につき一行で行優先順に書き出します。

  `write_data`は `array`や `make_array`で生成された配列を行優先順でスラブ毎に改行して書き出します。 高次元スラブは更に改行で分割されます。

  `write_data`はハッシュ配列をキーそれぞれに結合したリストが続くように 1行に書き出します。

  `write_data`は入れ子のリストをそれぞれの部分リストを 1行に書き出します。

  `write_data`はフラットなリストすべてを 1行に書き出します。

  デスティネーション Dはファイル名かストリームかもしれません。 デスティネーションがファイル名の時、グローバル変数 `file_output_append`は出力ファイルに追加されるか上書きされるか決定します。 デスティネーションがストリームの時、 `write_data`はデータすべてが書かれた後、特殊なアクションを取ります; 特にストリームは開いたままとなります。

  separator_flagの認識される値は `comma`, `pipe`, `semicolon`, `space`です。 もし separator_flagを指定しないなら、ファイルは空白で区切られていると仮定します。

  ·

  Categories: Package numericalio ·File output

[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

## 69.3 Functions and Variables for binary input and output

関数: assume_external_byte_order (byte_order_flag)

  `numericalio`にバイナリデータを読み書きするためのバイトオーダーを知らせます。 byte_order_flagの2つの値が認識されます: リトルエンディアンバイトオーダーとも呼ばれる最下位バイト優先を示す `lsb` と ビッグエンディアンバイトオーダーとも呼ばれる最上位バイト優先を示す `msb`

  もし指定しないなら、 `numericalio`は外部のバイトオーダーは最上位バイト優先を仮定します。

  ·

  Categories: Package numericalio

関数: openr_binary (file_name)

  file_nameという名前のファイルを読むための 8ビット符号なしバイトの入力ストリームを返します。

  ·

  Categories: Package numericalio ·File input

関数: openw_binary (file_name)

  file_nameという名前のファイルに書き込むための 8ビット符号なしバイトの出力ストリームを返します。

  ·

  Categories: Package numericalio ·File output

関数: opena_binary (file_name)

  file_nameという名前のファイルに追加するための 8ビット符号なしバイトの出力ストリームを返します。

  ·

  Categories: Package numericalio ·File output

関数: read_binary_matrix (S, M)

  Mが一杯になるかソースが尽きるまで、ソース Sから行列 Mにバイナリの 8バイト浮動小数点数を読み込みます。 Mの要素は行優先順で読み込まれます。

  ソース Sはファイル名かストリームかもしれません。

  ソースの要素のバイトオーダーは `assume_external_byte_order`で指定します。

  ·

  Categories: Package numericalio ·File input

関数: read_binary_array (S, A)

  Aが一杯になるかソースが尽きるまで、ソース Sから配列 Aにバイナリの 8バイト浮動小数点数を読み込みます。 Mの要素は行優先順で読み込まれます。

  ソース Sはファイル名かストリームかもしれません。

  ソースの要素のバイトオーダーは `assume_external_byte_order`で指定されます。

  ·

  Categories: Package numericalio ·File input

関数: read_binary_list (S)
関数: read_binary_list (S, L)

  `read_binary_list(S)`は、バイナリ 8バイト浮動小数点数の数列としてソース Sの内容全体を読み込み、それをリストとして返します。 ソース Sはファイル名かストリームかもしれません。

  `read_binary_list(S, L)`は、リスト Lが一杯になるかソースが尽きるまで、ソース Sからバイナリ8バイト浮動小数点数を読み込みます。

  ソースの要素のバイトオーダーは `assume_external_byte_order`で指定します。

  ·

  Categories: Package numericalio ·File input

関数: write_binary_data (X, D)

  バイナリ 8バイトIEEE 754浮動小数点数で構成されるオブジェクト Xをディスティネーション Dに書き込みます。 他の種類の数は 8バイト浮動小数点に強制変換されます。 `write_binary_data`は非数データを書くことはできません。

  オブジェクト Xはリストか、入れ子のリスト、行列、もしくは、 `array`か `make_array`で生成された配列であり得ます; Xは未宣言配列や他のいかなる種類のオブジェクトもありえません。 `write_binary_data`は入れ子のリスト、行列、配列を行優先順に書き込みます。

  デスティネーション Dはファイル名かストリームかもしれません。 デスティネーションがファイル名の時、グローバル変数 `file_output_append`が出力ファイルに追加されるか上書きされるか決めます。 デスティネーションがストリームの時、データすべてが書かれた後 `write_binary_data`は特別な動作は何もしません; 特に、ストリームは開かれたままです。

  デスティネーションの要素のバイトオーダーは `assume_external_byte_order`で指定します。

  ·

  Categories: Package numericalio ·File output

[ << ] | [ >> ] |  |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

この文書は市川 雄二によって2014年4月月20日にtexi2html 1.82を用いて生成されました。