ユーティリティパッケージ(vsmr)を使用してVSAMファイルの値を読み取りました。コピーブックソースコードを利用できます。cobolプログラムを記述しないで、パックされたPIC cobol節のvsamファイルから数値を判別する方法は?
私は以下のように定義(書式設定を言い訳してください)
01 RECORD
05 RECORD-X PIC S9(3)V99 COMP-3
05 RECORD-Y PIC S9(3)V99 COMP-3
05 RECORD-Z PIC S9(3) COMP-3
05 RECORD-ALPHA PIC X(10)
を持っていると私は私がどのようにデータ
00 20 0C 01 10 0C 01 00 0C
に、次のしている場合RECORD-Xの数値を決定しますか?
RECORD-Xは3バイト、00-20 0CはRECORD-Xの値に相当しますが、これを人間が判読可能な値に変換する方法はわかりません(アルゴリズム的には必ずしもプログラム的ではありません)。
また、0110Cの値がRECORD-Yの値に対応すると仮定します。私の前提は正しいですか?
RECORD-Zに表示するデータと値の間に矛盾があります。 RECORD-zの長さは2バイト(2バイト)で、2バイトの場合、後ろに操作標識がないので、プログラム内のフィールドを使用すると簡単に「異常終了」(プログラム障害)が発生する可能性があります。次のバイトの下位ニブルに正しい見た目の値があるので、定義が間違っている可能性があります。 –
読むのは簡単です。バイナリコード化小数点は、「バイナリ」フィールドの小数点以下桁数です。 COMP-3/PACKED-DECIMALの場合、符号は、説明されているように下位半バイトにあります。通常はC(正)D(負)とF(符号なし、正として扱われます)を参照してください。しかし、言及された他の値も可能ですので、変換したい場合は無視することはできません失敗として)。小数点は常に暗黙指定されているため、データ記述(PICture句)を使用して、小数点がある場合は小数点があるかどうかを判断する必要があります。 Vの後のものは小数点以下のものです。 –