N88-BASIC(86) FIELD命令

FIELD

機能
ランダムファイル・バッファに変数領域を割り当てる
書式
FIELD [#]ファイル番号,フィールド幅 AS 文字変数 [,フィールド幅 AS 文字変数...]
文例
FIELD #1, 128 AS A$, 64 AS B$, 64 AS C$

FIELDは, OPENで設定されたランダムファイルバッファに対して,入出力を行うためのフィールドの名前,およびその長さを割り当てます.したがって, FIELDの実行にさきだって,OPENによりファイルをランダムモードでオープンしておかなくてはなりません.

〈文字変数〉には,割り当てたいフィールドの名前を文字型の変数名として指定します.この変数は,バッファにデータを代入したり,代入したデータを参照するのに用いられ,フィールド変数と呼ばれます.

〈ファイル番号〉は, OPENによってファイルバッファをオープンしたときに指定した番号です.

〈フィールド幅〉は,〈文字変数〉で指定したフィールド変数に割り当てる文字数で,バイト数で指定します.1つのバッファには,文字数合計が256バイトまでならば,いくつのフィールド変数を割り当ててもかまいません.

フィールド変数へ代入する(LSETあるいはRSETで行う)データの長さは,フィールド幅を超えではなりません.

数値データをフィールドにセットする場合,数値データの型に応じてMKI$,MKS$,MKD$の各関数を用いて文字型化してからLSET/RSETを行います.このとき,整数型の場合は2バイト長,単精度実数型の場合は4バイト長,倍精度実数型の場合は8バイト長にそれぞれ変換されますので,〈フィールド幅〉もこれに合わせて設定する必要があります.

2バイト系日本語文字列をフィールドにセットする場合,日本語1文字あたり2バイト分のフィールドを必要とし,また日本語文字列の前後にシフトコード(KIコードおよびKOコードそれぞれ2バイト分)が挿入されます.〈フィールド幅〉の設定を行うときにはこのことを考慮するようにしてください.たとえば,

LSET A$="日本語"

のためには最低10バイト分のフィールドを必要としますので,フィールド幅には10以上を設定しなくてはなりません.

なお, 1つのバッファに対して,異なった形式で複数のFIELDを実行しでもかまいません.

注意

各フィールド変数への値の代入を通常の代入文あるいはINPUTなどで行わないでください.もし行うと,その変数は一般の文字変数領域に登録されてしまうため, FIELDでのバッファ割り当てが無効となり,正しいファイルの入出力が行われなくなります.

参照:

GETLSET/RSETMKI$/MKS$/MKD$OPENPUTサンプルプログラム1, 2, 26, 27, 29

出典:N88-日本語BASIC(86)(Ver6.2) リファレンスマニュアル、日本電気株式会社、1991年発行


inserted by FC2 system