2

COBOLプログラムには、読み取り時にファイルから値を取得する次の変数があります。

01 Employee-number PIC 09(8) comp
01 Employee-number-x redefines 
   Employee-number PIC x(04)

同じプログラムに別の変数があります。

01 D-element-number PIC 9(04)

今、

Employee-numberに移動D-element-number

D-element-number次に、これをファイルに書き込みます

入力ファイルから読み取った値は次のとおりです:

0013 
0024

この値が来てEmployee-numberEmployee-number-xこの値を移動してD-Element-number、この変数を出力ファイルに書き込みます。

しかし、私は出力ファイルでこれを取得します:

4660
FFFF
4660

4660は の 10 進数に相当するX'1234'

しかし、私は次のようなものを見たいです:

1234
FFFF
1234

どうすればこれを達成できますか?

の定義を変更することは許されていますが、他にはD-element-number何もありません。

4

2 に答える 2

0

これを試していませんが、うまくいくと思います:

01 WN-GROUP.
   05 Employee-number PIC 9(8) comp.
   05 PACKED-ZERO     PIC 9(1) COMP-3 VALUE ZERO.

01 WN-PACKED redefines WN-GROUP PIC 9(9) COMP-3.
01 WN-UNPACKED PIC 9(9).

次に、手順で:

MOVE your-number TO Employee-number
MOVE WN-PACKED TO WN-UNPACKED.

最後に、WN-PACKED(1:8) を移動または表示できます。

于 2013-09-18T13:47:31.837 に答える