Next: , Previous: numericalio, Up: numericalio   [Contents][Index]

69.1 Introduction to numericalio

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

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

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,,Foo1234,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は バイトストリームを読んだり書いたりするためのストリームを開く 関数を含みます。


Next: , Previous: numericalio, Up: numericalio   [Contents][Index]