リスト指示の形式設定の場合、編集は、読み取りまたは書き込み対象のデータのタイプおよび長さによって制御されます。アスタリスクの形式識別子が、リスト指示の形式設定を指定します。たとえば、次のようになります。
REAL TOTAL1, TOTAL2 PRINT *, TOTAL1, TOTAL2
リスト指示の形式設定を使用できるのは、順次およびストリーム・アクセスの場合に限られます。
リスト指示形式設定によって処理される定様式レコード内の文字は、値のセパレーターで分けられた、次のような一連の値を構成します。
リスト指示の READ ステートメント内の入力リスト項目は、レコード内の対応する値によって定義されます。各入力値の形式は、入力リスト項目のタイプとして許されるものにしてください。入力値は、次のいずれかです。
c は、組み込みタイプのリテラル定数または区切りのない文字定数のいずれかです。 r は無符号でゼロ以外の整数のリテラル定数です。 kind 型付きパラメーターは、r または c のいずれかに対して指定しなければなりません。定数 c は、対応するリスト項目と同じ kind 型付きパラメーターを持つものと解釈されます。
r * c の形式は定数を r 個続けて指定するのと同じです。 r * の形式はヌル値を r 個続けて指定するのと同じです。
ヌル値は、次のように表されます。
+----------------------------------IBM 拡張----------------------------------+
-qintlog コンパイラー・オプションを使用して、整数または論理タイプのいずれかの入力項目の整数値または論理値を指定します。
+--------------------------------IBM 拡張の終り-------------------------------+
文字値を、必要な個数のレコードに続けることができます。次の有効な項目が文字タイプで、以下の条件を満たす場合、区切り文字となるアポストロフィおよび引用符は必要ありません。
区切り文字が省略されると、文字定数は最初のブランク、コンマ、スラッシュ、またはレコードの終わりによって終了され、データ内のアポストロフィおよび二重引用符は、二重にされません。
レコードの終わりには、次のような効力があります。
2 つ以上の連続したブランクは、文字値内にある場合を除いて、1 つのブランクとして処理されます。
ヌル値は、対応する入力リスト項目の定義状況に影響を与えません。
スラッシュは入力リストの終わりを示し、リスト指示の形式設定を終了します。スラッシュが検出されたときに、入力リストに追加の項目が残っている場合、それらの項目にヌル値が指定された場合と同じように処理されます。
入力リスト内に派生型のオブジェクトがあると、そのオブジェクトは、構造体コンポーネントのすべてが派生型定義の順序でリストされている場合と同様に処理されます。派生型の最終コンポーネントは、ポインターまたは割り当て可能なものであってはなりません。
リスト指示の WRITE および PRINT ステートメントは、入力時と同じ順序で、出力リストに値を出力します。値は、各出力リスト項目のデータ型に合った形式で書き込まれます。
複素定数および文字定数を除いて、レコードの終わりが、定数内にあってはなりません。また、ブランクを定数内に入れることもできません。
整数値は、I 編集を使って書き込まれます。
実数値は、E または F 編集を使って書き込まれます。 (詳細については、 『E、D、および Q (拡張精度) 編集』 または 『F (指数なし実数) 編集』 を参照してください。)
複素定数は、その実数部と虚数部がコンマで区切られて括弧で囲まれ、それぞれが、実定数について、上で定義したように出力されます。定数全体の長さがレコード全体の長さ以上である場合にのみ、レコードの終わりは、コンマと虚数部の間にあります。複素定数内で埋め込まれたブランクが許可されるのは、コンマとレコードの終わりの間の 1 ブランク、および次のレコードの始めの 1 ブランクのみです。
論理値は、真の値は T、偽の値は F と書き込まれます。
内部ファイル用、DELIM= 指定子なしでオープンされるファイル用、または DELIM= 指定子に値 NONE を指定してオープンされるファイル用の文字定数は次のようになります。
区切りのない文字データは、リスト指示入力を使っても、正しく読み返すことができない場合があります。
値が QUOTE で DELIM= 指定子付きでオープンされたファイル用に出力された文字定数は、二重引用符によって区切られ、その後に値のセパレーターが続き、2 つの連続する二重引用符によって外部メディア上に表される内部引用符を持ちます。値が APOSTROPHE で DELIM= 指定子付きでオープンされたファイル用に出力された文字定数は、アポストロフィによって区切られ、その後に値のセパレーターが続き、2 つの連続するアポストロフィによって外部メディア上に表される内部アポストロフィを持ちます。
スラッシュ (値のセパレーターとして使われる) およびヌル値は書き込まれません。
配列は順序で書き込まれます。
出力リスト内に、構造体を指定することができます。リスト指示出力では、構造体は、そのコンポーネントのすべてが派生型の定義に定義されているのと同じ順序でリストされているものとして扱われます。派生型の最終コンポーネントは、ポインターまたは割り当て可能なものであってはなりません。
+----------------------------------IBM 拡張----------------------------------+
以下の表は、書き込まれるフィールドの幅を、データ型と長さ別に示しています。レコードの大きさは、フィールド幅の合計に各非文字フィールドを区切る 1 バイトを加えたものになります。
データ型 | 長さ (バイト) | フィールドの最大幅 (文字数) | 小数 (10 進数) | 精度/IEEE (10 進数) |
---|---|---|---|---|
整数 |
1 2 4 8 |
4 6 11 20 |
n/a n/a n/a n/a |
n/a n/a n/a n/a |
実数 |
4 8 16 |
17 26 43 |
10 18 35 |
7 15 31 |
複素数 |
8 16 32 |
37 55 89 |
10 18 35 |
7 15 31 |
論理 |
1 2 4 8 |
1 1 1 1 |
n/a n/a n/a n/a |
n/a n/a n/a n/a |
文字 | n | n | n/a | n/a |
+--------------------------------IBM 拡張の終り-------------------------------+
区切られた文字定数が継続する場合を除いて、各出力レコードは、レコードを印刷するときに紙送り制御を行うために、ブランク文字で始まります。