[LINE_INPUT#] コマンド
指定したシーケンシャルファイルから1行(255バイト以内)単位のデータを一括して、
文字型変数に読み込みます。
文法 LINE INPUT #<ファイル番号> , <文字型変数名>
LINEINPUT #<ファイル番号> , <文字型変数名>
文例 LINE INPUT #1, A$
LINEINPUT #1, A$
<ファイル番号>は、OPEN命令で指定した番号です。
<ファイル番号>がKYBD:の場合にはキーボードからの入力となります。
LINE INPUT #でもLINEINPUT #でも同じです。
普通[PRINT #]でファイルを書き出します。
<文字型変数名>は、1行ぶんのデータがファイルから読み出されて代入されます。
LINE INPUT#命令は、シーケンシャルファイルの中から、
キャリッジリターン(CR)コードまたは
キャリッジリターン(CR)コード+ラインフィード(LF)コードで区切られている
1行単位のデータを読み込みます。
ただし、CRコードとはCHR$(13)、LFコードとはCHR$(10)とします。
LINE INPUT#命令は、データファイルのそれぞれの行がスペースやコンマによって
いくつかの欄に分割されているときや、
ASCII形式で保存されたテキストファイル(BASICのプログラムファイルもそうです。)
をデータファイルとして読み込む時に[INPUT#] より遙かに便利です。
[OPEN] 、[CLOSE] 参照。
ファイルデータが空(CRコードだけ)のとき、空の文字列として読み込みます。
サンプル1
10 CLS
20 OPEN "e:\DATA.DAT" FOR OUTPUT AS #1
30 PI!=3.141:A$="H15.03.31":B$="TREATED DATE day.": C$=CHR$(13)+CHR$(10)
40 PRINT #1 ,PI!;",";A$ ;",";B$
50 PRINT #1 ,PI!;
60 PRINT #1 ,",";A$ ;
70 PRINT #1 ,",";B$
80 PRINT #1 ,PI!;",";A$ ;",";B$;C$;
90 CLOSE #1
100 END
この場合、e:\DATA.DAT ファイルにデータが書き出されます。
40行、50,60,70行、80行で各レコードを書き出します。
40行は最後が;でないのでキャリッジリターン(CR)コードを付けて書き出します。
50,60行は最後が;ですので、何も付けないで書き出します。
70行は最後が;でないのでキャリッジリターン(CR)コードを付けて書き出します。
80行はC$=CHR$(13)+CHR$(10)が区切りコードとなり、
最後が;ですので、何も付けないで書き出します。
サンプル2
10 CLS
20 OPEN "e:\DATA.DAT" FOR INPUT AS #2
25 IF EOF(2)<>0 THEN GOTO 500
30 LINE INPUT #2 ,A$
40 PRINT A$:GOTO 25
500 CLOSE #2
900 END
この場合、e:\DATA.DAT ファイルからデータが読み出されます。
さらに、
3.141 ,H15.03.31,TREATED DATE day.
3.141 ,H15.03.31,TREATED DATE day.
3.141 ,H15.03.31,TREATED DATE day.
と、3レコードが表示されます。