入出力

SAD ではファイル入出力は原則としてチャネルを通して行われます。 チャネルはOpenRead[], OpenWrite[], OpenAppend[] などによりファイルと結び付けられています。また、$Input、$Output などにより、そのときの入出力の流れをチャネルとして使用することもできます。このほかにパイプもチャネルとして利用できます。

ファイル入力

基本的なファイル入力は次のように行われます。

a = OpenRead["test.dat"];    (ア)
...
x = Read[a, Real];           (イ)
...
Close[a];                    (ウ)

まず、(ア) のように、入力したいファイル名(文字列)を OpenRead に入れることにより、ある入力チャネルを開きます。そのチャネル番号はシンボル a に割り当てられます。次に(イ)のように、チャネル a を用いて必要な入力動作を繰り返します。作業が終了したら、(ウ)のように、Close でそのチャネルを解放します。

入力ファイルはいくつかの Record から成り立っているとみなします。Record は改行文字 ("\n")で区切られた任意の長さの文字列です。改行文字自身は Record には含まれません。また、Record の区切りの文字を変更することもできません。

OpenRead[]

例:

OpenRead["!ls -l"]。

Read[]

オプションデフォルト値作用
WordSeparators" , \t"語の区切りを表わす文字達
NullWordsFalseTrueの時, 語の区切り字が連続したところに語 "" があるとみなす。
ReadNewRecordTrueFalse の時、次の Record を読まず、語 "" を返す。

ReadString[]

Skip[]

Close[]

Get[]

ファイル出力

基本的なファイル出力は次のように行われます。

a = OpenWrite["test.dat"];    (ア)
...
Write[a, x, y, ...];           (イ)
...
Close[a];                    (ウ)

まず、(ア)のように、出力したいファイル名(文字列)を OpenWrite に入れることにより、ある出力チャネルを開きます。そのチャネル番号はシンボル a に割り当てられます。次に(イ)のように、チャネル a を用いて必要な出力動作を繰り返します。作業が終了したら、(ウ)のように、Close でそのチャネルを解放します。

出力チャネルは OpenWrite の他に、OpenAppend でも開くことができます。この場合ファイルはその終端から書き込まれます。

出力ファイルの Record の長さは シンボル PageWidth で決まります。PageWidth の初期値は 131 または端末の表示幅 - 1 の小さいほうです。PageWidth を越える出力は自動的に改行されます。

OpenWrite[]

OpenAppend[]

Write[]

Print[]

WriteString[]

Close[]


トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-05-11 (日) 14:30:57