グラフィック形式の文字
概要
図形形式(グラフィック形式)は、各文字が 2 バイトで表される文字ストリングです。
図形データとして定義されるフィールドには、シフトアウト (SO) またはシフトイン (SI) 文字は含まれません。
図形フィールドの長さ (バイト数) はフィールド中の図形文字数の 2 倍です。
固定長の図形形式は、各文字が 2 バイトで表される、長さが一定の 文字ストリングです。
図形フィールドは、該当する仕様書の「データ・タイプ」記入項目に G を指 定することによって定義します。 パラメーターが図形フィールドである場合には、 定義仕様書の LIKE キーワードを使用して図形フィールドを定義することもできます。
図形データのデフォルトの初期化値は X'4040' です。 *HIVAL の値 は X'FFFF' であり、*LOVAL の値は X'0000' です。
GRAPHIC リテラルの例は、無効な GRAPHIC リテラルです。 これらの例では、文字「o」が、シフトアウト文字を示し、文字「i」はシフトイン文字を示しています。 多くの場合、グラフィック・データは、D1D2 または AABB として表示さ れています。これらは無効な 2 バイト文字です。 通常 GRAPHIC リテラルは、DBCS 文字が入力される前および入力された後 に、自動的にシフトアウトおよびシフトイン文字を入力する DBCS 対応キーボードを使用して入力します。
%GRAPH (図形値への変換)
[一般形式]
%GRAPH (文字ストリング {: CCSID})
%GRAPH(char-expr | graph-expr | UCS-2-expr { : ccsid })
%GRAPH は、文字、図形、または UCS-2 から式の値を変換し、図形値を 戻します。 結果は、パラメーターが可変長であれば可変長になります。
2 番目のパラメーターの ccsid はオプション で、結果の式の CCSID を示します。CCSID のデフォルト値は、ジョブの CCSID に関連した図形 CCSID です。 制御仕様書で CCSID(*GRAPH : *IGNORE) が指定されている場合、または モジュールについて想定されている場合、%GRAPH 組み込み関数は使用できません。
パラメーターが定数の場合、変換はコンパイル時に行われます。この 場合、CCSID は、ソース・ファイルの CCSID に関連した図形 CCSID です。
パラメーターが文字である場合、文字データは次の形式になっていなければなりません。
shift-out graphic-data shift-in
例えば、'oAABBCCi' のように指定します。
変換の結果、置換文字になる場合、コンパイル時に警告メッセージ が出されます。 実行時には状況 00050 が設定され、エラー・メッセージは出されません。
コーディング例
制御仕様書にはCCSIDキーワードを明記しなければならない。
_*..1....+....2....+....3....+....4....+....5....+....6....+....7...+....8.
H*Keywords+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
H CCSID(*GRAPH:*SRC)
定義仕様書への変数定義例
デフォルトの初期化値: X'4040'
*HIVAL の値 は X'FFFF'
*LOVAL の値は X'0000'
D*Name++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++
D VALUE S 6G
D VALUE1 S 8A inz('o有効i')
D VALUE2 S 4G inz(%graph ('oABCDi'))
D VALUE3 S 2C inz(%ucs2 ('o 黒i'))
D VALUE4 S 2G ccsid(4396) inz(*hival)
%GRAPHを用いた命令文の例
CL0N01FACTOR1+++++++OPCODE&EXTEXTENDED-FACTOR2+++++++++++++++++++++++++++++
C EVAL VALUE = %GRAPH(VALUE1)
C* // graph now has the value "有効 ".
C
C EVAL VALUE = %GRAPH(VALUE1) + %GRAPH(VALUE2)
C* // graph now has the value "ABCD 黒".