• ベストアンサー

COBOLの文法

COBOLの文法でたぶんシフトコードの一種だと思うのですが、 Nタイプの項目に付く'29'や'38'といった数字には どういう意味があるのでしょうか? '28''29'の組み合わせは解るのですが・・・。 よろしくお願いします。

  • 1053
  • お礼率7% (2/28)

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

COBOL の文法というよりも、使っている計算機(多分、大型汎用機ですよね)の 漢字コードの扱いで決ります。COBOL に限らず、Fortran で漢字を扱うときも 意識することがあります。 '28'~'29'で括った範囲が漢字コード扱いになります。OS 次第ですが、IBM漢字 コードや JEF漢字コードなど。 こっちのほうはうろ覚えなんですが、'38'~'39'で括った範囲も漢字コード扱い です。そのままページプリンターに印字すると、(28の場合と比べて)文字のポイ ント数が違って印字された記憶があります。 # きっと、ちゃんとした区別(意味)があるんでしょうけど。

その他の回答 (1)

回答No.2

N項目に関しては汎用機、オフコンともに前の方の回答どおり漢字コードが前後につきます。ただ、メーカーや機種やバージョンによりコード体系が違います。また、プログラム作成上でとしてそれを意識しなくてはならない汎用機も有ります。帳票などは機種によっては帳票レコードで漢字コードを定義しなければいけない場合もありますので、お使いの機種のマニュアルを参照してみることが必要になる場合もあると思います。

関連するQ&A

  • COBOLについて

    COBOL初心者なのですが。 COBOLで 01 A.   03 B PIC 9(02).   03 C PIC X(02). MOVE  SPACE  TO  A. とした時、基本項目であるBには何が入っているのでしょうか? 数字項目にSPACEというのはありえないですよね。 どなたかわかる方、教えていただけませんか?

  • COBOLの数字チェック

    COBOLのコーディングで ある項目が数字かどうかのチェックをする記述はどのようでしたか? NUMERICチェックです。 久しぶりにコーディングしなければならないのですが、すでにマニュアル類も見当たりません・・・。

  • pro*cobol ⇔ oracle のデータ型の扱い

    お世話になります。 pro*cobolで、テーブルの作業領域を定義し、 データの編集後、oracleのテーブルへ出力している のですが、cobol側の定義はpic9タイプで oracleの項目定義ではCHAR型になっております。 この状態で、cobol側のpic9タイプの項目に "A00001"等文字を含む値を設定した所、 ABENDせずにoracleテーブルに"A00001"の 項目値を出力しています。 cobolだけに限れば、属性エラーなのですが、 この場合、oracleの項目定義が優先されるのでしょうか? よろしくご教授の程、お願い申し上げます。

  • <COBOLでのSJISファイル出力について>

    <COBOLでのSJISファイル出力について> COBOL(開発環境はNETCOBOLです。)にて以下のような処理は可能でしょうか? 1.SJISで記載されたファイルを読み込む。 2.1のファイル内の全角カナについて半角カナに変換する。   ※数値項目などは特に変換しない。 3.2で返還した項目を置換後、再びSJISファイルとして出力する。 COBOL・文字コード共に理解が浅く答えが見つけられない状態です。 可能・不可能だけでもご教授頂けると大変助かります。 申し訳ありませんがよろしくお願いいたします。

  • COBOLについて

    今高校でCOBOLの勉強をしています。 教科書の練習問題が宿題に出されたのですが、わからないところがありました。 (1)数字項目2桁、テーブル名SUUJI-TBL、データ名SUUJI、要素数20個のテーブルを確保しなさい。 (2)手続き部で、(1)で確保したテーブルに、先頭から1,3,5・・・の値を転記しなさい。ただし、PERFORM文を用いること。 という問題です。 (1)は、 01 SUUJI-TBL.   02 SUUJI PIC X(2) OCCURS 20. と書けたのですが、(2)がさっぱりわかりません。 わかる方、教えてもらえますか?

  • PRO*COBOLのSQLCTXの桁数変更

    COBOLの組み込みSQLについて質問があります。 Oracle 8.1.5 のPRO*COBOL でプリコンパイルしたところ、 "SQLCTX" が書き加えられています。 符号付の9桁の数字項目であるはずなのに、 10けたの数字が初期値として与えられてしまいます。 01 SQLCTX GLOBAL PIC S9(9) COMP-5 VALUE +1000107995. ↑ コンパイルすると、ここでエラーになってしまいます。   解決法知っている方、どうか教えてください。   先週は正常の値(9桁)が入っていました。 ----------------------------------------------------------------------

  • COBOL

    こんにちわ、IT企業の新卒ではありませんが研修生です。 COBOLの勉強をしています。以下の内容についてご質問させていただきます。 (1)データフォーマットがOCCURS(300 TIMES)のデータ項目に40 TIMESデータを格納し、 41個目には改行コード(ODOA)が入っているプログラムがあるのですが、 実際に41個目をdisplayで見てみると空白が入っていました。ファイルの方には確かに改行コードがちゃんと入っています。 これはどうしてこうなるのでしょうか? (2)SEARCHに関して SEARCH TBL AT END 処理1 というようなプログラムがあります。 TBLは 01 TBL 02 DATA OCCURES 100 INDEXED BY NO     03・・・ 03・・・ というようなフォーマットになってます。 このときAT ENDというのは例えば(1)のときのようなデータとしては 100TIMES入れれるが、40TIMESしか格納しない場合は41個目にAT ENDになるのでしょうか? それとも100回全部入れ終わった時のみAT ENDになるのでしょうか? お手数ですが以上よろしくお願い致します。

  • COBOLの動的SQLについて

    COBOLにおいて、動的にSQLを組みたいのですが、 取得する方法も含めてご教授願いませんでしょうか? 例) 条件により コード=1の場合、 SELECT A.ID,B.NAME FROM ID A,NAME B コード=2の場合、 SELECT A.ID,B.NAME,C.ADDRESS FROM ID A,NAME B,ADDRESS C のように条件により取得する項目も数もテーブルも違います。 この場合でのSQLの組み方とデータを取得する(FETCHの方法)がわかりません。 また、取得する件数も1件ではありません。 よろしくお願い致します。

  • COBOLでのチェックデジット算出

    COBOL初心者です。 01 印刷領域. 03 Aコード PIC X(03). 03 Bコード PIC X(04). 03 Cコード PIC X(02). 03 チェックデジット PIC X(01). と定義した変数のA,B,Cコードだけをサブルーチンに渡して、チェックデジットを受け取りたいと思います。 このときチェックデジットを抜いた"印刷領域"を渡すことは可能でしょうか? 例) Aコード 102 Bコード 2001 Cコード 03 渡すデータ102200103 受け取るチェックデジット7 印刷領域 1022001037 という具合にしたいんですが… あと、A,B,Cコードは数字に変換しなければなりません。 すみませんがおしえてください(ToT)/~~~

  • COBOLで全角変換を行いたいのですが...

    汎用機(ACOS-4)でCOBOLを使って開発を行っている者です。 INファイルのある項目を全角変換し、 OUTファイルに出力するプログラムを作成しています。 ただ困った事に変換元の項目の内容が 半角のデータ、全角のデータ、半角全角が混在しているデータもあるのです。 現在は項目の中に半角スペースの文字コードが存在すれば全て半角とし、 以外は全て全角と判断しています。 もちろん項目中のデータが全て埋まっている場合や、 半角全角が混在しているデータについては文字化けを起こしています。 どなたかこのような変換について良い方法があればご教授願います。 宜しくお願い致します。