No.1
- 回答日時:
対象の文字エンコーディングが何なのかを書かなければ、回答が付かないと思いますよ。
もし文字エンコーディングが分からなければ、OSや機種などの環境を書かれると良いかと。(Windows/ACOS/FACOMなど)
特にUNIX・Windows系と汎用機系では、一般的に使われる文字エンコード方式が全く違いますので処理も異なります。
この回答への補足
すいません。OSはLinuxです。文字は、文字エンコーディングS-JISデータです。内部に変換テーブルをもって力技で変換しろと言われています。大変申し訳ございませんが宜しくお願い致します。
補足日時:2009/04/04 05:11No.2
- 回答日時:
>内部に変換テーブルをもって力技で変換しろと言われています
というのがヒントですね。 計算で求める必要はないということです。
とっても簡単なのでご自分で考えてみましょう。
カタカナは全部で何文字ですか。
OCCURS はご存じですか?
この回答への補足
本当に初心者ですいません。
01 WK-TBL-MASTER.
03 WK-TBL-SIZE PIC 9(02).
03 WK-TBL-TABLE OCCURS 0 TO 2
DEPENDING ON TBL-SIZE
INDEXED BY TBL-IDX.
05 WK-TBL-CODE PIC X(01).
05 WK-TBL-STR-CODE PIC X(02).
いろいろ調べながら以下のような検索テーブルを作成しました。
WK-TBL-CODEには、半角の文字を。WK-TBL-STR-CODEには、変換後の全角文字を初期値として定義し、検索用テーブルを作成しようとしています。上記のテーブルに初期値を VALUE句で定義するためには、どうすればいいんでしょうか。
No.3
- 回答日時:
>03 WK-TBL-TABLE OCCURS 0 TO 2
> DEPENDING ON TBL-SIZE
本題からそれますが、0~2の可変長って、何をやりたいのでしょう?
>テーブルに初期値を VALUE句で定義
VALUE句で初期値を入れた領域を、このテーブルではREDEFINEで参照する形にすればいいと思います。
この回答への補足
すいません。本当に初心者で、例えば、
001110 01 WK-TBL-MASTER.
001120 03 WK-TBL-SIZE PIC 9(02).
001130 03 WK-TBL-TABLE OCCURS 3
001140 DEPENDING ON WK-TBL-SIZE
001150 INDEXED BY TBL-IDX.
001160 05 WK-TBL-CODE PIC X(01).
001170 05 WK-TBL-STR-CODE PIC N(02).
上記の定義して、とりあえず、半角カナ "ア イ ウ"を全角カナの"ア イ ウ"に変換するためのテーブルを定義したいです。
例:
半角アの WK-TBL-CODE(1) 全角の"ア"、WK-TBL-STR-CODE(1)の文字といったように定義したテーブル準備したいです。
SEARCHを使って、実際の半角カナを全角カナに変換しようとしています。
本当に初心者で、説明を不足していて申し訳ありません。
REDEFINEは項目の再定義と知っているんですが、VALUE句で定義した初期値、上記の2次元表にどうわりあてていいかわかりません。
すいません。宜しくお願いします。
No.4
- 回答日時:
Shift JISでしたら、エスケープシーケンスが無いので、対象の1byteとその前後の1byteをチェックすれば、必ず何の文字か判断できますね。
http://ja.wikipedia.org/wiki/Shift_JIS
どのコードをどのコードに変換するかは下記の表を見れば分かると思います。
半角カナを含む文字コード表
http://ash.jp/code/codetbl1.htm
全角カナを含む文字コード表
http://ash.jp/code/codetbl2.htm
詳しくは参考URLのページなどを見ると良いかと。
参考URL:http://euc.jp/i18n/charcode.ja.html
No.5ベストアンサー
- 回答日時:
REDEFINES がちゃんと理解できていないのでしょうか。
たとえば、こんな定義をしたとします。
01 TEMP.
05 TEMP-TEXT PIC X(10) VALUE 'ABCDEFGHIJ'.
05 TEMP-TEXTR REDEFINES TEMP-TEXT.
07 TEMP-1 PIC X(02).
07 TEMP-2 PIC X(02).
07 TEMP-3 PIC X(02).
07 TEMP-4 PIC X(02).
07 TEMP-5 PIC X(02).
05 TEMP-TEXT PIC X(10) VALUE 'ABCDEFGHIJ'.
ではメモリ上の各アドレスに次のようにデータが入ります。
アドレス 文字
ADDR0001| A
ADDR0002| B
ADDR0003| C
ADDR0004| D
ADDR0005| E
ADDR0006| F
ADDR0007| G
ADDR0008| H
ADDR0009| I
ADDR0010| J
05 TEMP-TEXTR REDEFINES TEMP-TEXT.
は メモリのADDR1からどのように項目に
割り当てるかが指定されます。
この例だと
TEMP-1 から 順に2文字ずつなので
TEMP-1には
ADDR0001| A
ADDR0002| B
TEMP-2には
ADDR0003| C
ADDR0004| D
TEMP-3には
ADDR0005| E
ADDR0006| F
TEMP-4には
ADDR0007| G
ADDR0008| H
TEMP-5には
ADDR0009| I
ADDR0010| J
割り当てられます。
この回答への補足
すいません。REDEFINESはわかっていませんでした。ようやく理解できました。
ようやく、検索の処理にたどりついたのですが、WK-BBBBの半角の入力されたエリアを、WK-AAAA出力エリアに全角カナで出力しようと思い以下の処理を書いたのですが、無限ループに入ってしまいました。
以下の比較処理は、どこがわるいんでしょうか。
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A-RECORD-ALT.
05 FILLER PIC X(03) VALUE "アア".
05 FILLER PIC X(03) VALUE "イイ".
05 FILLER PIC X(03) VALUE "ウウ".
05 FILLER PIC X(03) VALUE "ウウ".
01 WK-TBL-MASTER REDEFINES A-RECORD-ALT.
03 WK-TBL-TABLE OCCURS 2
INDEXED BY TBL-IDX.
05 WK-TBL-CODE PIC X(01).
05 WK-TBL-STR-CODE PIC X(02).
01 WK-AAAA PIC X(10).
01 WK-BBBB PIC X(05).
01 I PIC 9(02).
01 X PIC 9(02).
03 WK-TBL-TABLE OCCURS 2
INDEXED BY TBL-IDX.
05 WK-TBL-CODE PIC X(01).
05 WK-TBL-STR-CODE PIC X(02).
01 WK-AAAA PIC X(10).
01 WK-BBBB PIC X(05).
01 I PIC 9(02).
01 X PIC 9(02).
MOVE "イウアイウ" TO WK-BBBB
MOVE 1 TO I
MOVE 1 TO X
PERFORM UNTIL I > 5
SET TBL-IDX TO 1
DISPLAY WK-BBBB(I:1)
SEARCH WK-TBL-TABLE VARYING TBL-IDX
AT END
MOVE SPACE TO WK-AAAA
CONTINUE ;
WHEN WK-TBL-CODE(TBL-IDX)=WK-BBBB(I:1)
DISPLAY WK-TBL-CODE(TBL-IDX)
DISPLAY WK-BBBB(I:1)
MOVE WK-TBL-STR-CODE(TBL-IDX) TO WK-AAAA(X:1)
ADD 1 TO I
DISPLAY I
ADD 2 TO X
DISPLAY WK-TBL-STR-CODE(TBL-IDX)
DISPLAY WK-AAAA(X:2)
SET TBL-IDX UP BY 1;
END-SEARCH
END-PERFORM.
STOP RUN.
No.6
- 回答日時:
DISPLAY を随所に入れているのはいいことです。
せっかくDISPLAYしているのですからその結果を活用しましょう。DISPLAYされた内容から処理がどこを流れているか確認できるはずです。
自分が思っているとおりに流れていないところがあったら、何故そこに流れたのかを考えてください。
いただいたソースには複数の問題がありますが、WK-TBL-MASTER をDISPLAY してみると何かに気づくはずです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Excel(エクセル) Excel でマクロ利用しセル内テキストを修正しております(半角カナを全角にするなど)。 ただ、セル 4 2023/06/15 21:29
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- マウス・キーボード キーボードのカナって必要ですか? DOS時代からパソコン触ってますが、カナ入力したこと記憶にありませ 14 2022/11/03 13:27
- Excel(エクセル) エクセルでのデータの統一に関して リストを作成する際、元データをコピペでリストに転記しており、元デー 2 2022/08/31 15:33
- Access(アクセス) Access で半角スペースと全角スペースの区別について 3 2022/11/05 23:54
- マウス・キーボード 何故、ローマ字や英語を全角で打つ? 5 2022/05/15 09:36
- その他(プログラミング・Web制作) nkfの-z4オプション 2 2022/10/08 21:33
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
COBOLによる全角・半角混在→全角に
その他(プログラミング・Web制作)
-
COBOL・全角判定
その他(プログラミング・Web制作)
-
COBOLで全角変換を行いたいのですが...
その他(プログラミング・Web制作)
-
-
4
COBOL、項目末尾に空白がある場合削除の方法その他
その他(プログラミング・Web制作)
-
5
COBOLでの全角文字の判定をしたい。
その他(プログラミング・Web制作)
-
6
COBOLで文字タイプを数字タイプに変換する方法
その他(プログラミング・Web制作)
-
7
COBOLの計算方法
その他(プログラミング・Web制作)
-
8
全角スペースを削除するには?
Visual Basic(VBA)
-
9
COBOLのMOVEで桁数が異なる場合
その他(プログラミング・Web制作)
-
10
COBOLの改行
その他(プログラミング・Web制作)
-
11
COBOLの文法
その他(プログラミング・Web制作)
-
12
COBOLについて
その他(プログラミング・Web制作)
-
13
マッチング処理(1:N)
その他(プログラミング・Web制作)
-
14
COBOLの日付操作
その他(プログラミング・Web制作)
-
15
COBOLでのNOT = の AND条件
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
int型のゼロ埋め
-
ダブルクォーテーションのrepla...
-
Path型をString型へ変換する(Java)
-
数字を読みに変換する方法について
-
Windows-31Jからutf-8への変換...
-
JavaのStringクラスに「外字」...
-
javascriptで文字列のsjis利用...
-
カタカナをローマジに変換する。
-
文字化けします。
-
UTF-8とUnicodeの互換性
-
VC++にてCString型のフルパスを...
-
なぜか + が半角スペースに変換...
-
C言語32bitから64bitの移行につ...
-
javaで入力したの半角カタカナ...
-
javaの初歩的な質問です。
-
文字コード変換について
-
Visual Studio 6.0でビルド可能...
-
半角の&(アンド)文字をサーブレ...
-
文字列の比較
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
ダブルクォーテーションのrepla...
-
Path型をString型へ変換する(Java)
-
カタカナをローマジに変換する。
-
int型のゼロ埋め
-
javascriptで文字列のsjis利用...
-
byte[] を long,float とかに...
-
C言語32bitから64bitの移行につ...
-
JavaのStringクラスに「外字」...
-
javaの初歩的な質問です。
-
Visual Basic でのコードをASCI...
-
UTF-8とUnicodeの互換性
-
文字列の比較
-
[Javascript]エンターキー押下...
-
下記問題の答えが"D"になる意味...
-
エクセルVBAで「〜」が表現でき...
-
byte配列をImageに変換する
-
javaで「全角が含まれているか...
-
IBM漢字コード⇒SJIS変換方法
-
Windows-31Jからutf-8への変換...
おすすめ情報