- 締切済み
COBOL で組まれたシステムのデータに関して
8年程前に組まれた、COBOLベースのシステムからデータを抽出したくて困っています。 データの実体は、見つけておりそれがバイナリデータである事までは確認出来ています。 そのデータを変換して、データの中身を確認したいのです。 バイナリデータ⇒16進数データ(.hex)にまでは変換出来たのですが、 それ以降、どうすれば良いのかがわかりません。 別途、COBOLプログラムを組んでデータを抽出する事も考えましたが、 COBOLの知識が皆無で、それをやるのは最終手段だと考えています。 仮に上記のような要件を満たす為に他にどのような情報が必要かもよく分かりませんので、 その辺も含めて教えて頂ければと思います。
- みんなの回答 (13)
- 専門家の回答
みんなの回答
- root139
- ベストアンサー率60% (488/809)
まずは、↓辺りを明確にされた方が良いでしょう。 1. 何のデータが格納されていると考えられるのか? 2. COBOLのプログラムはどんな環境で動かしていたのか? 3. COBOLのプログラムはどんな目的のシステムか? また、何を持って、バイナリデータ、つまり、テキストデータではないと判断されたのでしょうか? どんな形式のデータかも分からないのにバイナリーデータと判断するのは容易ではないと思います。例えば、COBOLのプログラムが汎用機やそれに準じる環境で動いていたのであれば、EBCDICコードとその日本語拡張コードに拠るテキストファイルを扱っていた可能性も有るとおもいますが、PCの環境で正常に表示できるエディタやビューワーは滅多にないでしょう。 http://ja.wikipedia.org/wiki/EBCDIC また、日本語だけを見ても様々なエンコード方式が有りますからその全てに当てはまらない事を確認しなくてはなりません。 > バイナリデータ⇒16進数データ(.hex)にまでは変換出来た ということですが、具体的にどの様な処理を行ったのでしょうか?
- saburo0
- ベストアンサー率35% (76/216)
そのデータを入出力しているプログラムのロジックをみて データ定義に、そのフォーマット形式が記述されていると思います。 COPY句で、別ファイルになってるかもしれません。 もし詳細設計書などにデータ定義書のようなものがなければ、 COBOL自体を解析するしかないでしょう。 COBOLの構文はそんなに難しいものではないですよ。 どうしてもご自身で分からなければ、分かる人間に頼むしかないでしょう。
補足
COPYディレクトリが確かにあります。 ソースを見てみたのですが、データ構造みたいなのとかが書いてあるのはわかるんですが、 その何処を見れば、 >データ定義に、そのフォーマット形式が記述されていると思います。 これがわかりますか?また、フォーマットが分かった場合それ以降どういった手順を踏めばよいでしょうか?
- wormhole
- ベストアンサー率28% (1626/5665)
フォーマットがわからないバイナリデータということでしたら、何とかそのフォーマットを調べる事が先決かと。 それがわからないことには最終手段としているCOBOLのプログラムを組んでデータを抽出するということもできませんよ。
補足
フォーマットと言うのは、やはりコンパイラによる変換方式の違いみたいなものなのでしょうか? 汎用機は経験がなく、アプリケーションもC#でwindowsアプリケーション組んだぐらいしか経験ないので、いまいちわからないんです(汗)
- 1
- 2
補足
分かる範囲で補足させて頂きます。 >1. 何のデータが格納されていると考えられるのか? 顧客管理システムのデータです。 2. COBOLのプログラムはどんな環境で動かしていたのか? Windows ローカル環境で動作するアプリケーションとしてです。 現在は、XPで動いています。 3. COBOLのプログラムはどんな目的のシステムか? 顧客管理です。 >また、何を持って、バイナリデータ、つまり、テキストデータではないと判断されたのでしょうか? テキストエディタで、閲覧した時の状態です。それぐらいは、一応分かるので。。。 バイナリエディタで内部を閲覧した際にデータの確認も出来ましたので。 >本語だけを見ても様々なエンコード方式が有りますからその全てに当てはまらない事を確認 文字コードは、shift_jisを一応あたっています。 >> バイナリデータ⇒16進数データ(.hex)にまでは変換出来た >ということですが、具体的にどの様な処理を行ったのでしょうか? http://www.vector.co.jp/soft/win95/util/se498419.html 上記のソフトを使用しました。