• 締切済み

COMP-3

こんにちわ。COBOLプログラマーです。 現在単体試験の入力データ作成で困ってます。 COMP-3形式のデータをPC上で作成するのはどのようにすれば良いのでしょうか? 例えば. NUM_A PIC X(10). NUM_B PIC S9(10) COMP-3. とかだと、テキストでは 1234567890?????? になると思いますが「?」部分の編集方法が分かりません。 ちなみに今までは 1.Excelで作成→CSV形式で保存→ホスト上のプログラムで変換 2.ホスト上のエディタでHEX表示して編集 3.JCLで置換 などの方法でデータを作成してました。 ちょろっと調べてみたんですけどバイナリエディタっての使えばいいんですかね? その場合、2の手順と同じになると思うのですが項目数が数百個あるレコードのため、1の手順のように一括で変換出来るフリーウェアがあればなと思いました。 皆様の知恵をお借りしたいと思います。 宜しくお願いしますm(__)m

みんなの回答

回答No.2

No.1の人と同意見です。 変換するツールをCOBOLで作成できるのなら、 作ったほうが楽かと思います。 MOVE文だけで、変換できますし。 手作業よりよっぽど汎用的にもできると思います。

oshietexxx
質問者

お礼

ありがとうございます。 時間がないため入力レコードのレイアウトを問わない汎用的なものは諦めてとりあえず今回は固定レイアウトでMOVE文ONLYの単純なプログラムで対処しようと思います。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

他の方にも分かるように、、、 COMP-3は、内部10進(パック)形式ですね。 項目が数百個もあるなら、PC上で編集したり、ホストに転送したり大変ではないですか? どこのホストを使っているのか分かりませんが、OSのユティリティで、データ生成を支援するものがあると思いますよ? COBOLのプログラマなら、テストデータを生成したり、変換するツールをCOBOLで作るのもいいでしょう。 COBOLは、そういう処理は得意ですよ? こんな感じでしょうか。。。 (1)PC上のテキストでは、CSV形式で0~9の数字(必要なら符号も付けて)で作成 (2)ホストに転送 (3)ホスト上で、ツールで幾つかの項目をパックに変換

oshietexxx
質問者

お礼

ありがとうございます。 説明不足でしたが今回はPC COBOLなんですよ。 なのでそういったユティリティが今の開発環境で無かったためどうやって作ろうかと思った次第です。 確かにテストデータを作成するプログラム自分で作ればいいかなと思ったのですが、時間の余裕もないのでそういったツールがあればそれでやっちゃおうと思ったので質問させて頂きました。 ちゃんと作成するとなると入力データはCSVで 1レコード目  :属性情報1,属性情報2,属性情報3,・・・・ 2レコード目  :桁数情報1,桁数情報2,桁数情報3,・・・・ 3レコード目以降:データ1,データ2,データ3,・・・ というようなファイルを作成してプログラム内で属性情報がCOMP-3のデータは変換して出力するというようなイメージですかね。 今は汎用的なやつを作ってる時間がないのでとりあえず入出力のレイアウトを固定して単純移送するだけのもので対処しようと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • COBOLのCOMP形式について

    久しぶりにCOBOL開発をする事になり、 懐かしく思ってPGを解析しているとどうしても 思い出せないものがありました。  COMP形式です。 AAA PIC 9(05)      5バイトで12345ならば「F1F2F3F4F5」 BBB PIC 9(05)COMP-3      3バイトで12345ならば「12345F」 CCC PIC 9(05)COMP      この場合は何バイトになるのでしょうか?      及び、12345の場合、どのようになるのでしょうか? 以上、初歩的な部分ですが皆様よりご教授頂きたいと思います。 よろしくお願いします。

  • COBOLの定義について

    COBOLの定義で PIC S9 (07) COMP-3 というデータがあってこれを自分で書かなくてはなりませんが、どんなにやってもデータ例外が出てしまします。自分ではHEX状態で ------- 001 00C ------- みたいなものかと思っていますが、違うようです。 どなたかわかるかたいましたら教えていただけませんか。 よろしくお願しまSう。

  • COBOL で組まれたシステムのデータに関して

    8年程前に組まれた、COBOLベースのシステムからデータを抽出したくて困っています。 データの実体は、見つけておりそれがバイナリデータである事までは確認出来ています。 そのデータを変換して、データの中身を確認したいのです。 バイナリデータ⇒16進数データ(.hex)にまでは変換出来たのですが、 それ以降、どうすれば良いのかがわかりません。 別途、COBOLプログラムを組んでデータを抽出する事も考えましたが、 COBOLの知識が皆無で、それをやるのは最終手段だと考えています。 仮に上記のような要件を満たす為に他にどのような情報が必要かもよく分かりませんので、 その辺も含めて教えて頂ければと思います。

  • COBOL数値転記の仕様

    このたび、まったくの未経験のCOBOLをやることになりました。 で、数値データの表し方になんやかやとやたら方法があるようなのですが、それらを互いに「転記」したときに、どういう結果になるものか、皆目わからないんです(環境はCOBOL85でWindows上での開発です)。 テクニックとしては基本だと思うのですが、それでいてどこにも説明されていな~い!フリーのCOBOLツールは見つけてきましたが、使い方が???なもので…。  たとえば、  01 X1 PIC XX (数値が入ってるとします)  01 N1 PIC 99  01 D1 PIC 99 COMP  01 B1 PIC 1(16) BIT な場合、X1とN1は直接  MOVE N1 TO X1 などとやってもデータは失われないと思うんですが、他の形式での操作は(桁あふれとか無視して)ちゃんと転記できるのでしょうか。 いま特に、D1からX1へというパターンが多いです。1バイトの2進データを、数値の文字列として使おう、というんです。いわば、1バイトを3バイトに展開してやるんです。何も考えずに書けば、  01 D2 PIC 9(4) COMP VALUE 97  01 X2 PIC X(3)  MOVE D2 TO X2 でしょうけど、たぶん'a△△'になるだけのような気がします…。  それとも、  01 N2 PIC 9(4)  MOVE D2 TO N2  MOVE N2 TO X2 などとやっていけたりするのでしょうか。 いったいどうなるのでしょう、いろいろ書いちゃいましたけど、各々の転記の仕組みを教えてください。 また、COBOLの(お堅い規格を書き写しただけでない)解説のサイトなどあれば、ご紹介いただけますでしょうか。

  • ゲームのパラメータの読み込みについて

    現在個人的にゲームを作成しております。 使用している言語はC++で、開発ソフトはVisualStudio2008を使用しています。 早速本題なのですが、ゲーム作成の際に敵キャラクタなどのパラメータを 「CSVファイル→変換→バイナリデータ」 として、読み込もうと思っています。 このような時  1.まず、CSVファイルを読み込んで一度バイナリデータへ変換する。(コンバート的なものを作成?)  2.実際にゲームで使用する時は、そのバイナリデータを読み込んで、必要な情報を取得する。 としようと思いっているのですが、何か他によく使われる手法などあるでしょうか? もし、1のようなことを行う場合の手順としては、 「構造体に必要なデータをCSVから取得して、それを改めてバイナリ形式で掃き出す」 って流れであっているでしょうか? また、このような手順などが掲載されているサイトなどご存知でしたら 教えてもらえると助かります。 質問ばかりですみませんが、よろしくお願いします。

  • ROM書き込みデータのファイル形式?

    ROMなどに書き込むメモリーデータで Hex形式というのがありますが、これは16進のデータで書かれたものと理解してよいでしょうか? よくバイナリーデータと言いますが、Hexと何が違うのでしょうか? その他に、別の拡張子の書き込みデータがあるようですが、Hexと何が違うのでしょうか? ROMライタを使用して Hexデータを書き込んでいる場合、別の拡張子のデータは書き込めるものなのでしょうか? 以上、よろしくお願いします。

  • 固定長ファイルのバイナリ表示と編集ができるエディタを探しています

    指定バイト数で折り返して表示する固定長ファイルに対して、 バイナリ表示と編集ができるエディタを探しています。 通常のバイナリエディタだと、16文字分を1行として表示しますが、 それを任意で指定したいです。 用途はCOBOLで作成した固定長ファイルを表示するためです。 フリーソフトでそのようなソフトはありませんでしょうか。 昔、NECの『日本語ファイルメンテナンス』という ソフトを使ったことがあります。(有償ですが)。

  • 編集方法を教えてください

    PIC S9(08)COMP-3で指定されたデータを上6桁分だけ編集したい。 この場合の編集方法を教えてくると非常に助かる。

  • またまたバイナリ→テクスト

    VBは5で、Excle2000のVBAでやってます。バイナリデータ→テクストデータに 128バイナリデータを添え字を使って1バイトごとに抽出DATA_PS = DATA_PS & 変換関数 というふたつの部分のリファレンスが正しくかけなくて 困ってます。Getを使って1バイトづつとりだして、Hexを使って変換するというものだそうです。 誰か教えてください。

  • バイナリファイルの編集

    stirling,bzなどのエディタを用いて、バイナリファイルを編集しようとしています。 テキスト(a.txt)のデータをバイナリファイルにコピペしようとしたのですが・・・ テキストで「ff ff ff ff」と書いてあったデータが、バイナリファイルにコピペすると「4646~」というように変換されてしまいました。 バイナリファイルでも「ff ff ff ff」とコピーしたい場合はどのようにすれば良いのでしょうか?

複数メールアドレスの設定方法
このQ&Aのポイント
  • ウインドウズ11に更新した際、複数アドレスの設定方法を教えてください。
  • 複数アドレス契約済みの場合、設定方法を教えてください。
  • ひかりTVのサービスやISPぷららについての質問です。
回答を見る

専門家に質問してみよう