• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MicroFocusを使ったCOBOLプログラミング)

MicroFocusを使ったCOBOLプログラミングでのデータ異常の検知と回避方法

このQ&Aのポイント
  • MicroFocusを使ったCOBOLプログラミングでのデータ異常の検知と回避方法について解説します。
  • COBOLプログラミングでの計算結果に異常が生じる場合、デバッグモードでは異常が検知されますが、EXEファイルを実行すると検知されないことがあります。
  • 変換される結果や暗黙の変換を回避するためには、データの型チェックやエラーハンドリングを実装するなどの方法があります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

MFCOBOLのCOMPUTE命令の解釈の問題と考えられます。 汎用機の文字コード(EBCDIC)は内部は16進表現で次のようになります。 A -> X'C1' B -> X'C2' C -> X'C3' X 9(3)という宣言は、MFCOBOLが9(3)の中身は0~9即ち 16進でX'F0'~X'F9'の範囲内を想定している筈ですが、実際にはA'C1'などが入っている場合に 上位4ビットを無条件にFに置き換えて処理しているものと推測できます。  このような拡大解釈をするか否かは、コンパイル時のオプションで選択できるようになっているのが一般的な言語処理プログラムの仕様ですので、マニュアルを調べれば見つかるのではないでしょうか?

superexpress
質問者

お礼

丁寧なご説明ありがとうございました。 コンパイル時のオプションがあるのですね。 確認してみたいと思います。 # 業務で資産移行しておりましたが、 # 途中で方針が変わったため移行は中断してしまいました。 # ですがためになるご説明をいただき勉強になりました。 # ありがとうございました。

その他の回答 (1)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.1

ソフトについてはわかりません、想定原因です。 エラーは異常とワーニングと分類があり、ワーニングレベルはソフト側にて実行の際回避しますが異常レベルはそうでない、だったように思います。確認してください。 チェックのロジックはある方が良い。

superexpress
質問者

お礼

ありがとうございます。 仰る通り、numericチェック等かませば回避できそうです。 ただ、現在汎用機からの資産移行を行っており、 対象は数百もあるため、ロジックの追加は厳しいところです…。

関連するQ&A