[PRINT#] コマンド

ファイルにレコードを書き出します。
文法 PRINT #<ファイル番号> , [<式> [, または ; <式>...]
文例  PRINT #1, A; B; C
    PRINT #2, S1$;",";S2$;
    PRINT #3,

OUTPUTモードでOPENしたファイル(シ−ケンシャルファイル,スクリーンファイル,
プリンターなど)や、RS-232C回線ファイルに、<式>に指定した文字列、数値などの
データ(レコード)を書き出します。
<式>が省略された場合は、たんに改行コード(CHR$(13))のみを書きます。

行の最後に;を付けると改行コード(CHR$(13))を書き込みません。
行の最後に;を付けないと改行コード(CHR$(13))を付加して書き込みます。

<ファイル番号>は、OPEN命令で指定した番号です。
<ファイル番号>が SCRN:の場合にはディスプレイへの出力となります。
<ファイル番号>が LPT:の場合にはPrinter PortへのDirectの出力となります。
LPRINTなどと同類で、Windowsのプリントアウトではありません。

<式>には、ファイルに書き込む数値式、文字式を指定します。
PRINT #は、PRINT命令が画面に出力する場合と同様の形式で、
ファイルにデータを書き出しますが、特にシーケンシャルファイルへの
書き出しの場合は、入力時にこれらのデータがファイルから正しく
読み出せるような形式になるように,適切に区切らなければなりません。
INPUT # 命令による読み出しのために、
データ(<式>)の区切りに留意して下さい。
以下,ディスク上のシーケンシャルファイルに対して書き出しを行う場合に
つき,データの区切りかたについて説明します。
<式>が数値式の場合は、セミコロン(;)で区切ります。
例えば、
A=123:B=456:C=-78
PRINT #1, A; B; C
これで、ディスクには
_123__456_-78
と書き込みされます。ただし _は空白の意味です。
 もし区切り記号にコンマ(,)を使うと、TAB位置(プリント領域の区切り位置)を
調整する余分な空白もディスクに書き込みします。
(挿入されるこの空白の個数については[PRINT] の場合と同じです)ので,
ディスクの記憶容量がむだ使いされます。

<式>が文字式の場合は、セミコロン(;)で区切り、さらにPRINT #文中に、
独立した区切り記号(コンマをダブルクオテーションで囲むなど)を挿入します。
例えば、
A$="CAMERA":B$="93604-1"
PRINT #1, A$; ","; B$
とすると,ディスクには次のように書き出されます。

CAMERA,93604-1

","を使わないで,
PRINT #1,A$;B$
とした場合には,ディスクには
CAMERA93604-1
と書き出されてしまいます。これでは区切りの記号がありませんから
2つの別の文字列として読み込むことはできません。

次に、文字列式それ自身がデータとして,コンマ,セミコロン,意味のある
最初の位置の空白,キャリッジリターン(CHR$(13)),またはラインフィード
(CHR$(10))などを含む場合は,
その文字列式をダブルクオーテーション(CHR$(34))によって囲んでディスクに
書き出さなければなりません。
例えば,
A$="CAMERA,_AUTOMATIC"
B$="___93604-1"
PRINT #1, A$; ","; B$
とすると,ディスクには
CAMERA,_AUTOMATIC,___93604-1

と書き出されます。ただし,_は空白の意味です。
これではA$の中のコンマがデータの区切りとなってしまい,
INPUT #1,A$,B$としてデータを読み込むと,A$にはCAMERAを,B$には_AUTOMATIC
を読み込んでしまい,___93604-1は読み込まれないで残ってしまいます。
これを避けるには,
CHR$(34)で囲んで,例えば,
PRINT #1, CHR$(34); A$; CHR$(34); CHR$(34); B$; CHR$(34)
とすると、ディスクには
"CAMERA,_AUTOMATIC""___93604-1"
と書き出されますので、
INPUT #1, A$, B$
とすれば,
"CAMERA,_AUTOMATIC"をA$に,"___93604-1"をB$に読み込むことができます。

[INPUT#][LINEINPUT#][PRINT#][PRINT#USING]
[WRITE#]サンプルプログラム28 参照。

サンプル1 
10 CLS
20 OPEN "D:\DATA.DAT" FOR OUTPUT AS #1
30 PI!=3.14:A$="\1,000,000":B$="the market price."
40 PRINT #1 , PI!;",";CHR$(34);A$ ;CHR$(34); ",";CHR$(34); B$;CHR$(34)
50 CLOSE #1
900 END

この場合,D:\DATA.DAT ファイルにデータが書き出されます。

サンプル2 
10 CLS
20 OPEN "D:\DATA.DAT" FOR INPUT AS #2
30 INPUT #2 , PI! , A$ ,B$
40 PRINT PI!; A$; B$
50 CLOSE #2
900 END

この場合,D:\DATA.DAT ファイルからデータが読み出されます。
さらに, 3.14 \1,000,000 the market price. と表示されます。