出力に16進数のナショナル(PIC N)フィールドを表示したときに見えないのは、そのナショナルフィールドの16進値です。このフィールドのUTF-8値です。 「普通の」文字の場合は、1バイトのバイナリ・ゼロが続き、その後に文字の「ASCII」コードが続きます。
たとえば、大文字の "A"はX'0041 'になります。
ナショナルフィールドを使用する場合、ほとんどの場合、FUNCTION NATIONAL-OFを使用して変換を行う必要はありません。たとえば、PIC XからPIC Nへの単純なMOVEの場合、コンパイラは必要なものを認識し、変換を実行するために必要なコードを生成します。
変換が自動で行われない場所は、DISPLAY
です。
しかし、DISPLAYでできることは、出力を得るためにFUNCTION DISPLAY-OF(...)を使用することです。
WORKING-STORAGE SECTION.
01 W-WHEN-COMPILED PIC X(8)BX(8).
01 A-NATIONAL PIC N(1) VALUE "A".
01 A-DISPLAY PIC X VALUE "?".
PROCEDURE DIVISION.
MOVE WHEN-COMPILED TO W-WHEN-COMPILED
DISPLAY "PROGRAM-NAME COMPILED ON " W-WHEN-COMPILED
DISPLAY
FUNCTION WHEN-COMPILED
DISPLAY
"DATE COMPILED (YYYY-MM-DD): "
FUNCTION WHEN-COMPILED (1 : 4)
"-"
FUNCTION WHEN-COMPILED (5 : 2)
"-"
FUNCTION WHEN-COMPILED (7 : 2)
" TIME: "
FUNCTION WHEN-COMPILED (9 : 2)
":"
FUNCTION WHEN-COMPILED (11 : 2)
":"
FUNCTION WHEN-COMPILED (13 : 2)
" OFFSET TO GMT:"
FUNCTION WHEN-COMPILED (17 : 5)
PERFORM DO-THE-DISPLAYS
ACCEPT A-DISPLAY
MOVE A-DISPLAY TO A-NATIONAL
PERFORM DO-THE-DISPLAYS
ACCEPT A-DISPLAY
MOVE FUNCTION NATIONAL-OF
(A-DISPLAY) TO A-NATIONAL
PERFORM DO-THE-DISPLAYS
GOBACK
.
DO-THE-DISPLAYS.
DISPLAY
"THE NATIONAL, NATIVE>"
A-NATIONAL
"<"
DISPLAY
"THE DISPLAY, NATIVE >"
A-DISPLAY
"<"
DISPLAY
"THE DISPLAY-OF FUNC >"
FUNCTION DISPLAY-OF
(A-NATIONAL)
"<"
.
一部JCLはそれを実行する:
//stepname EXEC PGM=program,TIME=(,2) nice to limit things always
//STEPLIB DD DISP=SHR,DSN=your executable library
//SYSOUT DD SYSOUT=*
//SYSIN DD *
C
D
ここ
は上記を示すショートプログラム(またの別の使用を示すディスプレイと、参照修飾、FUNCTION)です出力は次のとおりです。国立のための六角で
04/13/16 09.28.21
2016041309282183+0000
DATE COMPILED (YYYY-MM-DD): 2016-04-13 TIME: 09:28:21 OFFSET TO GMT:+0000
THE NATIONAL, NATIVE> <
THE DISPLAY, NATIVE >?<
THE DISPLAY-OF FUNC >A<
THE NATIONAL, NATIVE> <
THE DISPLAY, NATIVE >C<
THE DISPLAY-OF FUNC >C<
THE NATIONAL, NATIVE> <
THE DISPLAY, NATIVE >D<
THE DISPLAY-OF FUNC >D<
:
THE NATIONAL, NATIVE> <
ECC4DCECDDCD64DCECEC6044
385051396513B0513955E01C
-----------------------
THE NATIONAL, NATIVE> <
ECC4DCECDDCD64DCECEC6044
385051396513B0513955E03C
-----------------------
THE NATIONAL, NATIVE> <
ECC4DCECDDCD64DCECEC6044
385051396513B0513955E04C
注:FUNCTION WHEN-COMPILEDの出力は異なる場合がありますが、OS/390およびVM用のCOBOLで使用したことはありません。また、日付の形式もインストールオプションによって異なる場合があります。
また、FUNCTION DISPLAY-OF(およびNATIONAL-OF)がコードページを2番目の引数として取ることはできません。デフォルトとは異なるコードページでナショナルを必要とした場合(そして、コードページをコンパイラオプションとして指定したくない場合、または同じプログラムで複数のコードページ出力が必要な場合)は、正しい出力を得るための関数のコードページ。このようなケースでは、MOVEなどのデフォルト変換は使用できませんが、関数を使用して明示的に変換する必要があります。
ハハはい、申し訳ありませんが、私は明らかにすべきでした:私はそれを読むことができません、そして、私が16進数をオンにするとき、それはたくさんの不器用さを示します。私は、コピーブックで使用されるフィールドを指定するためにINを使用しています。 – Lena