- ベストアンサー
【COBOL】小さい字を大きい字へ変換するサブルーチン
とても久しぶりのCOBOLで参考書も無く困っています。 汎用系COBOLです。 マスタファイルのデータで小さい字(ャュョ)を含むデータを抽出して、大きい字(ヤユヨ)に変換するサブルーチンを作成したいのですが、どう作成したら良いのかわかりません。 何かいい書き方をご存知の方、よろしくお願いします。 サンプル的にプログラムを記入していただけるととても嬉しいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>OBJECT-COMPUTERはHITAC-M、TSS端末利用 メーカーは日立で、OSはVOS3ということですね。 使用しているCOBOLは、COBOL85でしょうか? 「VOS3 COBOL85 言語」というマニュアル(紙でもWEB版でも)は、参照できますか? 「拡張使用編 日本語項目の扱い」という章の説明に、コンパイラオプションで「XCOBOL=(-N)」を指定すると、日本語文字単位(=倍角)で操作できるという説明と簡単な例題が記載されています。 コンパイラは国際標準仕様以外に、メーカー独自機能が実装されている場合が殆どなので、市販の参考書よりはメーカーのマニュアルを見る必要があります。
その他の回答 (2)
- chukenkenkou
- ベストアンサー率43% (833/1926)
文字コードはEBCDIKですか? そういった情報を書きましょう。 文字コードの規則性が分かれば、ある範囲のコードなら2進数として該当文字に「+n」するだけでOKかも知れません。 英大文字←→英小文字変換なら、私の知っているコンパイラならサービスルーチンが提供されていましたが、カナはどうなのかな。。。 あなたがお使いのコンパイラが提供しているサービスルーチンを調べてしましたか? コンパイラに依存しない方法では、INSPECT命令で文字を置換するのが簡単だと思います。
補足
情報が足りなくてすみません。 正直わからないです。 わけあってコーディングのみです。 OBJECT-COMPUTERはHITAC-M、TSS端末利用だそうです。 該当文字に+nで大丈夫な場合もあるのですね。 知りませんでした。 INSPECTを調べてみたのですが、全角文字に対応していないと書いてあったのですがどうなのでしょうか。 質問ばかりで申し訳ありません。
- SUPER-NEO
- ベストアンサー率38% (706/1857)
以前、汎用機の文字コード変換サブルーチンを作ったことがありましたけど、 IF 変数名 = "ャ" THEN MOVE "ヤ" TO 変数名 というような処理の連続で作っていましたけど、 変数内の文字列を1文字ずつを置換していきます。
お礼
なるほど! 参考にさせてもらいます☆
お礼
現場に行く機会があれば参照できるかもしれませんが、 今現在手元には無い状態です。 せっかくの情報をいただいたのに残念です。 ただ、コンパイラオプションで変更ができるかもしれないと言うことを担当者様にお伝えしようと思います。 ありがとうございました。