編集指示出力

EDIT オプションは、編集指示出力を指定します。

PUT EDIT 文は、形式リストを使用して、出力ストリームの位置および出力リストで指定された値の変換を制御します。各出力値がデータ形式の制御下で変換され、結果として生成された文字が出力ストリームに書き込まれます。

(output-list) (format-list) のペアを複数指定した場合は、すべての出力項目を 1 つのリストで連続して指定し、すべての形式項目を 1 つのリストで連続して指定したことと同じになります。

各データ形式の変換については、「データ型変換」の章の「形式制御変換」セクションを参照してください。また、形式リストの評価については、「FORMAT 文」セクションを参照してください。

PUT FILE(F) EDIT(A,B,C) (E(14,3),SKIP,F(10)); 
PUT FILE(F) EDIT(D) (A);

この例では、E(14,3) の制御下で A が変換され、14 文字が出力ストリームに書き込まれ、SKIP によって新しい行が開始され、F(10) の制御下で B が変換され、10 文字が出力ストリームに書き込まれ、E(14,3) の制御下で C が変換されて出力ストリームに書き込まれます。出力リストから出力する変数はこれ以上ないため、2 回目は SKIP は評価されません。2 番目の文は、文字列への変換に関する通常の規則によって長さが決定される文字列に D を変換します。変換の詳細については、「データ型変換」の章を参照してください。結果として生成された値は、C と同じ行に書き込まれます。ただし、C で行がいっぱいになった場合を除きます。その場合は、D は次の行から始まります。

元の出力値が文字列またはピクチャ値であり、ファイル制御ブロックに PRINT 属性がない場合は、含まれている各引用符が 2 つの引用符に置き換えられ、文字列全体が引用符で囲まれます。

変更された可能性がある文字列は出力ストリームに配置され、その後に 1 つの空白が続きます。たとえば、ファイル制御ブロックで PRINT 属性および LINESIZE 20 が指定されている場合は、次の出力が次のタブ ストップで始まるように、値の後に十分な数の空白が続きます。各フィールドは、常に、1 つ以上の空白で区切られます。

文字列が 1 行に収まらない場合は、新しい行が開始され、その行および必要に応じて後続の行に文字列が書き込まれます。

PUT FILE(F) LIST(52,1.07E+5); 
PUT FILE(F) LIST('ABCX');

この場合は次のような結果になります (行サイズが 20 であると仮定)。 boxes

boxes

この例では、値 52 は boxes52 に変換されて出力され、その後に 1 つの空白が続き、1.07E+5 は box1.07E+05 に変換され、その後に 1 つの空白が続き、'ABCX' は ABCX に変換されます。結果として生成された値は、サイズが 20 の行には収まらないため、次の行に書き込まれ、その後に 1 つの空白が続きます。ファイル制御ブロックで PRINT 属性が指定されている場合は、最後の値は引用符なしで出力され、次の値が次のタブ ストップで始まるように、各値の後に十分な数の空白が続きます。

PRINT 属性がない場合は、出力は次のようになります。

boxes