文:データを文字形式から内部形式に変換します。これは,それぞれ書式付き順番 READ 文の内部ファイルを使用することに相当します。
形式
DECODE (c, f, b [, IOSTAT=i-var] [, ERR=label]) [io-list]
c
スカラ整数式。これは内部形式に変換する文字数です。
f
書式識別子。複数の記録が指定されているとエラーが発生します。
b
スカラまたは配列引用。b が配列引用ならば,その要素は添字の進行順に処理されます。
b は内部形式に変換される文字列を含んでいます。
i-var
エラーが発生した場合には正の整数,エラーが発生しなかった場合にはゼロと定義されるスカラ整数変数。
label
エラーが発生した場合に制御を受け取る実行文の文番号。
io-list
I/O 並び。I/O 並びは,DO 形反復または変数の単純並び (大きさ引継ぎ配列を除く) です。並びは,内部形式への変換後のデータを受け取ります。
書式指定子と I/O 並びの間の相互作用は,書式付き I/O 文の場合と同じです。
規則と振る舞い
DECODE文が変換できる文字数は,b のデータ型に依存します。たとえば,INTEGER(2) 配列は要素 1 つにつき 2 文字を含むことができるので,文字数の最大値はその配列中の要素数の 2 倍です。
文字変数または文字配列要素が含むことができる文字数の最大値は,文字変数または文字配列要素の長さです。
文字配列に含むことができる文字数の最大値は,各要素の長さに要素数を掛けた値です。
関連情報
例
次の例では,DECODE 文は A 中の 12 個の文字を (FORMAT 文の指定に従って) 整数書式に変換します。
DIMENSION K(3) CHARACTER*12 A,B DATA A/'123456789012'/ DECODE(12,100,A) K 100 FORMAT(3I4) ENCODE(12,100,B) K(3), K(2), K(1)
12 個の文字は配列 K に格納されます。
K(1) = 1234 K(2) = 5678 K(3) = 9012