Easytrieve Plus : プログラム中で直接16進コードを指定する方法は? プログラム中で16進数の漢字コードを直接指定できるか?

book

Article ID: 185738

calendar_today

Updated On:

Products

EASYPROCLIB CA Easytrieve Report Generator CA Easytrieve Report Generator for Common Services

Issue/Introduction

Question
プログラム中で直接16進コードを指定する方法は?
プログラム中で16進数の漢字コードを直接指定できるか?

Environment

z/OS, MSP, VOS3, IBM, FUJITSU, HITACHI

Resolution

Answer
16進コードを ''(引用符)で囲み、直前に16進数を示すパラメータを指定することで16進コードを直接扱うことができます。
16進リテラルは主に、標準のデータ入力用キーボードに存在しない文字をコーディングするために使用されるものであり、次の2種類があります。

● EBCDIC16進リテラル
指定方法   X '16進リテラル '
指定例       X '0000 '     → 2バイトの2進数の0

● 漢字16進リテラル
指定方法   D '16進リテラル '
指定例      D '40404040'      → 2つの2バイト・スペース (IBMコード・システム)

注意
漢字16進リテラルは4つの数字を1グループとしてひとつの漢字形式の文字を表しますがデータ中にシフト・コードを含むことはできません。シフト・コードを含む形で16進コードで指定する場合には、EBCDIC16進リテラルとして指定します。意するからです。自動集計の処理がある場合は、さらにSUMSPACEの桁数が追加されますので、LINESIZEを計算するときは考慮に入れてください。


記述例
(例) FLGに「N」のたっているレコードのデータ部にNULLデータを送ってファイルに出力する

FILE     FILEA
A-FLG      1      1      A
A-DATA    2    10      A
FILE     FILEB
B-FLG      1      1      A
B-DATA    2    10      A
*
JOB
B-FLG   =    A-FLG
B-DATA =    A-DATA
IF A-FLG   =   'N'
    B-DATA   =   X'00000000000000000000'
END-IF
PUT FILEB

※NULLデータの移送は、以下でも可。
MOVE     X'00'     TO     B-DATA     FILL     X'00'

Additional Information

Old Japanese Knowledge document ID: JTEC000993