Google
オフコン練習帳内を検索
インターネット全体を検索

NECオフコン関連
オフコン一般
情報

[掲示板に戻る]


COBOLで日本語のあいまい検索は出... ぴぴ 2009-3-31 16:05
Re:COBOLで日本語のあいまい検索は... 温泉好きのうさぎ 2009-3-31 17:25
Re:COBOLで日本語のあいまい検索は... ぴぴ 2009-4-1 11:17
Re:COBOLで日本語のあいまい検索は... 富山清風 2009-4-1 19:57
Re:COBOLで日本語のあいまい検索は... ぴぴ 2009-4-2 13:52

1 COBOLで日本語のあいまい検索は出来ますか
ぴぴ 2009-3-31 16:05  [返信] [編集]

RDBQの検索で例えば会社名に「東」が入っているデータを検索する時は、!”東”!とすると「東京株式会社」、「株式会社東京」などが表示されます。

COBOLのプログラムで同じ事が出来ますか?

1件データを読んで、会社名をワークに落として、

OCCURS 30 PIC N(01)などと定義して、ひとつひとつ比較するしかないのでしょうか?

SELECT命令では、あいまい検索が出来ないと思ったのですが、出来る方法はありますか?

2 Re:COBOLで日本語のあいまい検索は出来ますか
温泉好きのうさぎ 2009-3-31 17:25  [返信] [編集]

INSPECT 命令を使えばいいのではないでしょうか。



書き方の例

INSPECT   aaaa   TALLYING   nnnn   FOR   ALL   xxxx.


aaaa : 検査される項目
nnnn : 出現回数のカウンタ (実行前にゼロクリアしておくこと)
xxxx : 検査したい項目


aaaa および xxxx は、PIC X の基本項目で定義します。PIC N は不可なので再定義等で回避します。
xxxx は、定数で指定することも可能ですが、日本語の場合 NC”漢字” は不可です。”漢字” とだけしてください。
実行後、出現回数の値を調べることによって、結果の有無がわかります。


また、aaaa および xxxx は、部分参照させることも可能ですから、工夫することによって、可変長の検索ができます。

(例)
INSPECT   aaaa(bb:cc)   TALLYING   nnnn   FOR   ALL   xxxx(1:yy).

(意味)
aaaa の bb バイト目から cc バイトの長さの範囲で、xxxx の yy バイトの長さの項目を検査する。

3 Re:COBOLで日本語のあいまい検索は出来ますか
ぴぴ 2009-4-1 11:17  [返信] [編集]

温泉好きのうさぎ様、ありがとうございます。
20年間、COBOLの仕事をしていますが、
INSPECT命令を使ったことがありませんでした。
これから、試してみたいと思います。
4 Re:COBOLで日本語のあいまい検索は出来ますか
富山清風 2009-4-1 19:57  [返信] [編集]

http://otd10.jbbs.livedoor.jp/286441/bbs_reply?reply=521
あたりが参考になりませんか?


今回、SELECT命令に関して、
私も以下のコーディングで試して、
うまくできましたので、紹介します。


**** 部分一致 !”東”!
     SELECT  NCFTKC
         WHERE ( FTKC-KTNM   CHARACTERS NC”東” )
         COUNT IN WG-KAKUNIN .

**** 前方一致 ”東”!
     SELECT  NCFTKC
         WHERE ( FTKC-KTNM   CHARACTERS LEADING NC”東” )
         COUNT IN WG-KAKUNIN .

**** 後方一致 !”東”
     SELECT  NCFTKC
         WHERE ( FTKC-KTNM   CHARACTERS TRAILING NC”東” )
         COUNT IN WG-KAKUNIN .
     MOVE    NC”東”      TO      WG-N1 -----PIC N(01)


**** 部分一致 !”東”!
     SELECT  NCFTKC
         WHERE ( FTKC-KTNM   CHARACTERS WG-N1 )
         COUNT IN WG-KAKUNIN .


**** 前方一致 ”東”!
     SELECT  NCFTKC
         WHERE ( FTKC-KTNM   CHARACTERS LEADING WG-N1 )
         COUNT IN WG-KAKUNIN .


**** 後方一致 !”東”
     SELECT  NCFTKC
         WHERE ( FTKC-KTNM   CHARACTERS TRAILING WG-N1 )
         COUNT IN WG-KAKUNIN .


(注)検索文字列の桁数が複数ある場合(例:”東”,”東京”など)
   は、上記のコーディングの例ではWG-N1、WG-N2などを
   複数用意する必要があるかも。


参考になれば幸いです。



5 Re:COBOLで日本語のあいまい検索は出来ますか
ぴぴ 2009-4-2 13:52  [返信] [編集]

富山清風様、ありがとうございました。



**** 部分一致 !”東”!

SELECT NCFTKC

WHERE ( FTKC-KTNM CHARACTERS WG-N1 )

COUNT IN WG-KAKUNIN .



を使い、検索する事が出来ました。

A−VXのCOBOL85言語説明書などを読んだのですが、

わからなかったです。

これからは、過去ログも見てから質問します。

BluesBB ©Sting_Band