PUT

目的

プログラムから出力ストリームにデータを送信します。

構文

PUT[FILE(f)][SKIP[(n)]][LINE(m)][PAGE][list];

または

PUT STRING(r)[list];

パラメーター

list
[LIST](output-list)

または

DATA (output-list)

または

EDIT(output-list) (format-list)[(output-list) (format-list)]...

output-list
output-item [,output-item]...
output-item
expression

または

(output-list iterative-DO)

次のような指定もできます。

n および m
整数値を生成する式。
f
ファイル値を生成する参照。
r
出力ストリームである文字列変数への参照。

形式リストの定義については、「FORMAT 文」のセクションを参照してください。

反復 DO と output-list はカンマで区切りません。

次の例に示すように、1 つの反復 DO で構成される output-list には 2 組のかっこがあります。

PUT LIST (((ARR(I,J) DO I = 1 TO 5) DO J = 1 TO 5))

かっこで囲まれている反復 DO を含む output-list は、反復 DO の制御下で DO グループであるかのように値を送信します。

LIST、DATA、EDIT のいずれも指定されていない場合は、LIST であると見なされます。この場合 (デフォルト)、PUT という語の直後に output-list を記述する必要があります。

説明

PUT 文は、プログラムから出力ストリームにデータを送信します。出力ストリームはストリーム ファイルまたは文字列変数のいずれかになります。

PUT 文には、format-list、FILE、SKIP、STRING、LINE、PAGE、および LIST、DATA、または EDIT などのいくつかの形があります。

オプションは任意の順序で指定できますが、format-list は EDIT オプションの一部であり、常に output-list の直後に記述する必要があります。

PUT DATA および PUT LIST で、AREA 型の変数または AREA 型の要素を含む構造体を引数として使用すると、その内容として <...> が出力されます。これは、このような場合には AREA の実際の内容を読み取ることができないためです。

FILE オプションでは、関連付けられたファイル制御ブロックが STREAM OUTPUT ファイルとして開かれているファイルか閉じているファイルの値を参照する必要があります。ファイルが閉じている場合は PUT 文で自動的に開かれ、属性 STREAM OUTPUT LINESIZE(80) が設定されます。FILE オプションを省略した場合、デフォルトで FILE(SYSPRINT) が設定されます。SYSPRINT には、開いたときにデフォルトで PRINT 属性が適用されます。暗黙的な OPEN の LINESIZE の値は、LINESIZE オプションが省略された明示的な OPEN の場合とは異なることに注意してください。

SKIP オプションは、新しい行の先頭に出力ファイルを位置指定します。SKIP オプションの式の結果は、正の整数値 n である必要があります。このオプションを指定すると、現在の行から n 行が書き込まれ、後続の出力が新しい行から開始されます。SKIP で n を省略した場合は、デフォルトで 1 に設定されます。

STRING オプションは、出力項目がファイルではなく参照先の文字列変数であることを示します。STRING オプションは、FILE、LINE、PAGE、SKIP と同時には使用できません。PUT STRING 操作の対象には、操作の結果全体 (PUT LIST または PUT DATA の処理で追加される空白、セミコロン、および引用符を含む) を格納できる十分な領域が割り当てられている必要があります。対象に十分な領域がない場合、ERROR 条件が通知されます。

LINE オプションは、ページの先頭からの行数で指定した特定の行にストリーム ファイルを位置指定します。後続の出力はその行から開始されます。LINE オプションは LINE 形式と同じように評価されます。「LINE(n)」のセクションを参照してください。n が現在の行番号よりも小さい場合、ENDPAGE 条件が通知されます。

SKIP と LINE の両方が指定されている場合は、LINE が先に評価されます。

PAGE オプションは、新しいページの先頭に出力ファイルを位置指定します。後続の出力はそのページの 1 行目から開始されます。PAGE と LINE の両方のオプションが指定されている場合は、PAGE が先に評価されます。

SKIP、PAGE、および LINE は、PUT 文での位置に関係なく、常に PUT 文で生成される出力の書き込み前に評価されます。文の出力の最後の行を後続の出力と共有しない場合は、2 つの文を使用する必要があります(「」のセクションを参照してください)。

output-list は左から右に評価されます。個々の式には、配列参照、構造体参照、またはスカラー値式のいずれかを使用できます。UNION 属性を持つ構造体は、PUT 文で変数として使用することはできません。

スカラー値は、出力ストリームに 1 個の値を送信させ、EDIT が指定されている場合には 1 個のデータ形式を使用します。配列変数は、n 個の値を送信させます。この場合の n は、配列内の要素の数です。EDIT が指定されている場合には、n 個のデータ形式を使用します。値は、「データ型」の章の「配列」のセクションで定義されているように、行優先順で配列から送信されます。構造体変数は、構造体のすべてのメンバーと、含まれているすべてのサブ構造体のメンバーが値を送信するようにします。値は左から右の順に送信されます。EDIT が指定されている場合、個々の値にデータ形式が必要です。

PUT 文で送信できるのは、算術値、ピクチャ値、および文字列値のみです。

PUT 文で書き込まれる行の数は、output-list で指定された値の数と SKIP、LINE、PAGE の各オプション、および形式リストで指定された制御書式によって決まります。ただし、制御項目またはオプションによって新しい行が強制的に書き込まれない限り、現在の行の現在の位置から送信が開始され、出力リストを満たすのに必要な数の行が使用されます。