編集指示ストリーム入出力

編集指示ストリーム入出力で送信された値は、長さおよび内容がデータ形式によって制御される固定長フィールドに送られます。データ形式は、具体的には、実行される変換のタイプ、および入出力フィールドの文字数または桁数を制御します。各データ形式は GET 文または PUT 文の値リストの要素に対応しており、その値が変換されて送信されることになります。次に例を示します。

PUT FILE(F) EDIT(A,B) (F(7,2),A(6));

この例では、A が fixed binary(15) として宣言され、現在の値が -45 であり、B が character(4) として宣言され、現在の値が HATbox である場合、次の結果がファイル F の現在の行に書き込まれます。

box

次の例に示すように、制御形式を使用して強制的に改行し、行の一部をスキップすることができます。文の入出力リスト内にある送信される値よりも多くの形式項目がある場合、余分な形式項目は無視されます。次に例を示します。

PUT FILE(F) EDIT(A,B) (X(3),F(7,2),SKIP,X(4),A(6),SKIP);

前の例と同じ A および B の値を使用すると、上の文では、次の結果が生成されます。

boxes

この例では、最初の行は現在の行の最後に配置され、2 番目の行で新しい出力行が開始されます。B が最後の項目出力であるため、これ以上、PUT 文で新しい行は開始されません。したがって、2 回目の SKIP が実行される前に PUT 文は終了します。

編集指示入力では、制御形式によって各入力行を正確に表す必要があります。現在の入力行に含まれている文字数が、形式を満たすために必要な文字数よりも少ない場合は、次の例に示すように、形式が満たされるまで追加の行が読み取られます。

GET FILE(F) EDIT (X) (A(80));

この例では、X が character(100) として宣言され、現在の行に 60 文字しか含まれていない場合、その 60 文字が読み取られた後、新しい行が読み取られ、その行に処理が進み、その行から 20 文字が追加で読み取られます。その後、読み取った 80 文字が X に代入され、20 個の空白で X の値の右側が埋められます。