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でのバッファ割り当てが無効となり,正しいファイルの入出力が行われなくなります.
参照:
GET, LSET/RSET, MKI$/MKS$/MKD$, OPEN, PUT,サンプルプログラム1, 2, 26, 27, 29
出典:N88-日本語BASIC(86)(Ver6.2) リファレンスマニュアル、日本電気株式会社、1991年発行