みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

COBOL集団項目の領域の長さが分かる命令や手法はありませんか?

COBOL集団項目の領域の長さが分かる命令や手法はありませんか?

汎用機の開発に従事している者です。
COPY句を使ってファイルレイアウトを展開するやりかたで、
そのレイアウトが設計書どおりかを確認したいのです。
例えば、
01 OT-FILE.
 03 OT-AAA    PIC 9(007) COMP-3.
 03 OT-BBB.
   05 OT-BBB-A PIC ZZZ9.
   05 OT-BBB-C PIC 9V99.
だと、OT-FILEは11バイト、OT-BBBは7バイトというようにです。

エクセルに展開して関数やマクロを駆使して数えるのも
いいのですが、コンパイル‐リンクを行って実行形式に変える
事が一番の検証方法かと思います。

その際に領域の長さを求める手法があれば、自前で作る
エクセル関数よりも信頼度の高いチェックが少ない工数で可能ですが
なかなか良い考えが浮かびません。

どなたかお教え願います。

投稿日時 - 2010-07-15 20:15:25

QNo.6040853

すぐに回答ほしいです

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

DISPLAY LENGTH OF OT-AAA.
DISPLAY LENGTH OF OT-BBB.

とかすれば、長さが表示できますが、後の確認が大変では?

私もExcelで作ったレコードレイアウトからCOPY句を生成するのが素直だと思いますよ。

投稿日時 - 2010-07-15 22:29:44

お礼

ご回答ありがとうございます。
現場で試したところ、希望した動きを致しました。
ありがとうございました。

他の皆様はExcel形式のレコードレイアウトからcopy句を生成する
マクロを作成される手法をとられているのでしょうか。
occurs句やcomp、comp-3やらさまざまな形式への対応をExcelマクロ
で対応するのは私にはとても難儀な作業です。
ただ、実績のあるツールが現場に用意されているのでしたら、積極的に
つかいますが、自前では限度があるので質問いたした次第です。

投稿日時 - 2010-07-16 16:32:07

ANo.2

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

COPY句の長さをチェックしてどうするのですか?
バイト数などより、属性定義が正しいかどうかを確認すればすむことです。
ファイルレイアウトをExcelで作成して、そこからExcelのマクロか何かでCOPY句を作ればいいんじゃないでしょうか。

投稿日時 - 2010-07-15 21:10:46

お礼

ご回答ありがとうございます。
自前で組んだマクロには必ず不具合が発生します。
手で編集したものよりは正確なのである程度は利用しますが、
それでも肉眼とコンパイラを使ったチェックはかかせません。

また、チェックを属性定義のみに絞ってもチェック自体に
漏れや間違いが発生するので、その検出に利用できますし、
設計通りのレコードレングスか確認する場合にもcopy句の
長さをチェックする必要があります。

投稿日時 - 2010-07-16 17:24:39

あなたにオススメの質問