Next: Functions and Variables for plain-text input and output, Previous: numericalio, Up: numericalio [Contents][Index]
numericalio
は
ファイルやストリームを読み書きする関数のコレクションです。
プレインテキスト入出力のための関数は、
数(整数、浮動小数点、多倍長浮動小数点)やシンボル、文字列を読み書きできます。
バイナリ入出力のための関数は、
浮動小数点数だけを読み書きできます。
もし既に入力データを記憶すべきリスト、行列、配列オブジェクトがあるなら、
numericalio
入力関数群はデータをそのオブジェクトに書き込むことができます。
そうでなければ、
numericalio
はデータを記憶するオブジェクトの構造をある程度推測し、
そのオブジェクトを返します。
プレインテキスト入出力では、
読み書きする項目それぞれがアトムであることが仮定されます:
整数、浮動小数点数、多倍長浮動小数点、文字列、シンボルであり、
有理数や複素数や他のどんなアトムでない式でもありません。
numericalio
関数群は、アトムでない式に直面した時、
何か適当なことを試みるかもしれませんが、
結果はここで規定されず、変更の対象となります。
入力ファイルと出力ファイルどちらのアトムも、
Maximaバッチファイルや対話コンソールでのものと同じフォーマットを持ちます。
特に、文字列はダブルクォートで括られ、
バックスラッシュ\
は次の文字の任意の特殊解釈を抑制し、
クエスチョンマーク?
は
(Maximaシンボルではなく、)Lispシンボルを意味するシンボルの始まりとして認識されます。
(分割された行をつなぎ合わせる)いかなる継続文字も認識されません。
プレインテキスト入出力のための関数は、オプションの引数separator_flag を取ります。 それはどの文字がデータを分離するかを示します。
プレインテキスト入力では、
separator_flagの以下の値が認識されます:
コンマで区切られた値のためのcomma
、
垂直バー文字|
で区切られた値のためのpipe
、
セミコロン;
で区切られた値のためのsemicolon
、
空白かタブ文字で区切られた値のためのspace
。
もしファイル名が.csv
で終わり、
separator_flagが指定されていないなら、
comma
が仮定されます。
もしファイル名が.csv
以外の何かで終わり、
separator_flag
が指定されていないなら、
space
が仮定されます。
プレインテキスト入力では、
複数続く空白とタブ文字は1つの区切り文字として数えられます.
しかしながら、複数のコンマ、パイプまたはセミコロンは意味を持ちます。
連続するコンマ、パイプ、セミコロン文字は
(空白やタブが間に入ろうが入るまいが)
区切り文字の間にfalse
を持つと見なされます。
例えば、1234,,Foo
は
1234,false,Foo
と同じと扱われます。
プレインテキスト出力では、
comma
, pipe
, semicolon
, そしてspace
はもちろん、
タブ文字で区切られた値のためのtab
も、
separator_flagの値として認識されます。
プレインテキスト出力では、
false
アトムは以下のように書かれます:
リスト[1234, false, Foo]
は1234,false,Foo
と書かれ、
出力を1234,,Foo
につぶすことはありません。
numericalio
関数群は8バイトIEEE754浮動小数点数を読み書きすることができます。
これらの数は、
assume_external_byte_order
で設定されたグローバルフラグに従って、
最下位バイトから順でも最上位バイトから順でも記憶することができます。
もし指定されないなら、
numericalio
は外部バイト順は最上位バイトからと仮定します。
他の種類の数は8バイト浮動小数点に強制変換されます;
numericalio
はアトムでないバイナリデータを読み書きできません。
いくつかのLisp実装は
IEEE 754の特殊値(正負の無限大、非数値、指数表現でない数)を認識しません。
numericalio
でそんな値を読み込むことの効果は未定義です。
numericalio
は
バイトストリームを読んだり書いたりするためのストリームを開く
関数を含みます。
Next: Functions and Variables for plain-text input and output, Previous: numericalio, Up: numericalio [Contents][Index]