ファイルに 7 桁のパック 10 進数フィールドがあります。これらの 7 桁を抽出/分離するデータ項目を定義するにはどうすればよいですか?
たとえば、最初の 2 桁を 1 つのデータ項目に格納し、残りの桁を別のデータ項目に格納して、後で操作できるようにしたいとします。
01 ザ・アレイ。
03 filler pic x(02) value '00'.
03 filler pic x(02) value '01'.
03 filler pic x(02) value '02'.
など、まで
03 filler pic x(02) value 'FF'.
01 two-array は、-array を再定義します。
03 harry occurs 256 pic x(02).
91サブ1。
03 filler pic x(01) value low-values.
93 sub1-byte2 pic x(01).
01 sub2 は sub1 comp を再定義します。
01 pd 写真 x(04)。
01 パブ pic 9(04)。
01 卵。
03 eggs1 pic x(01).
03 eggs2 pic x(01).
さまざまなパブを実行します
1から1
パブ > 4 まで
move pd(pub:1) to sub1-byte2
move harry(sub2 + 1) to eggs
display eggs1 egg2
エンドパフォーマンス。
つまり、'00' から 'FF' までの値を持つ 256 個の 2 バイト フィールドの配列です。
パック 10 進数フィールドを保持する 4 バイト フィールドをステップスルーします。
各バイトを添字として配列に使用します (「00」が配列の最初のフィールドを指すように 1 を追加します)。
指している 2 バイト フィールドには、パック 10 進数フィールドからのそのバイトを表す 2 ニブルの値があります。
パック 10 進数フィールドの 4 番目のバイトの右側のニブルは符号用です。