過去の桐井戸端BBS (桐ver.8)
7113 ケース制御の条件式 宮城 2000/08/10-19:03
たぶんバージョン共通。知らなかったのですが、ケース制御の条件式で部分一致検索できないんですか。

ケース(&某変数=*"("*)

コマンド形式エラーで蹴られます。記述に問題があるのでしょうか?
絞り込みや検索条件式ならOKなのに。(;_;)

ちなみに何をやってるかというと、郵政省公開の郵便番号データKen_all.csvが、
本来1レコードであるべきものを複数レコードにまたがらせているものがあるというに気づいて、
あきれるとともに対策を考えたものです(ただし本当にそこだけ)。
部分一致あきらめて、#文字位置で逃れ、ただいまテスト中。
よければ、今晩にでも私のサイトのダウンロードコーナーで公開します。 

7115 Re:ケース制御の条件式 悲しげ 2000/08/10-22:55
記事番号7113へのコメント
おや、宮城さん

>ケース(&某変数=*"("*)

うんこれは駄目でしょうね。(^^;)
理由は、恐らくは「条件式」と「比較式」の違いによるものと思うのですが、ま、そのような難しいことはさておき、
私なら素直に次のように記述するでしょうね。

ケース(#文字位置(&某変数,"(")>0)

7116 Re:ケース制御の条件式 佐田 守弘 2000/08/11-00:53
記事番号7113へのコメント
宮城さん
ワイルドカードを使った部分一致の指定や、値の範囲の指定(「1<[]<5」など)、辞書順(「:D」)などの比較方式の指定などは、
比較式だけに許されている記述形式で、条件式には使えません。
桐には、計算式、比較式、条件式の3つの式があり、使える演算子と使える場所に違いがあります。
とは言え、比較式に書く関数の中に条件式や計算式があったり、条件式の中に計算式や比較式があったりと、複雑きわまりないので、
かなり間違える人が多いのも事実です。
宮城さんは読んで頂いていると思いますが、私のHPの中に、詳しい記述がありますので、参考までに紹介しておきます。
 出版館→桐ver.5活用情報→計算式・比較式・条件式の違いと使い方
桐ver.5情報で掲載しておりますが、現在の桐にもそのまま当てはまります。

条件式として書く時の方法は、対策は悲しげさんが書かれている通りです。

●郵便番号データ
>Ken_all.csvが、本来1レコードであるべきものを複数レコードにまた
>がらせているものがあるというに気づいて、あきれるとともに対策を考
>えたものです(ただし本当にそこだけ)。

この事実に気がついてくれている人が少な過ぎます。
はっきり言って、郵政省は何を考えているのだろうかと思いたくなります。
(管理工学だって気がついているものやら...)
これ以外にも、町名の羅列や、「○○町(m〜n番地以外)」の様な、コンピュータに処理ができない記述があまりに多いのが実情です。
郵便番号データの問題は、それ以外にも多過ぎます。

私の郵便番号データ変換プログラム(「桐で作る名刺管理」にも付属)には、このあたりの処理を含めて、
郵政省のデータを桐用に変換する処理が入れてあります。
単体プログラムは、
Windows版桐活用情報→桐ver.7関連の活用情報→桐ver.7の表引き用郵便番号データ作成のための一括処理で公開しております。

それ以外にも、戸籍や登記簿謄本上の住所や所在地と、郵便用の住居表示とは、記述が微妙に違っていたりするのも、電算処理する上では問題です。

佐田守弘(KS-00119)
7121 Re:ケースの条件式 アックン 2000/08/11-09:55
記事番号7115へのコメント
悲しげさん> お元気そうで。(?)
よりシンプルにいきましょう。(^^;

ケース ( #文字位置 ( &某変数 , "(" )

ところで、#文字位置の欧文表記はありますか。>hidetakeさん

宮城さん>
すでに悲しげさんと佐田さんが書いているのでしつこくなりますが。

>絞り込みや検索条件式ならOKなのに。

ケースコマンドには条件式、
絞り込みコマンドには比較式、
検索コマンドには比較式を記述します。
(検索比較式というのはあっても、検索条件式なるものはないです。)
宮城さんがケースコマンドに書いたのは条件式だったから、受け付けてくれないわけです。
このへんの事情は、マニュアルの「式」を読んでみてください。

アックン(=^・^=)
7122 Re:ケースの条件式 アックン 2000/08/11-09:57
記事番号7121へのコメント
最後にカッコを閉じるのを忘れてましたねん。(^^;

アックン(=^・^=)

7123 Re:ケースの条件式 アックン 2000/08/11-10:01
記事番号7121へのコメント
>宮城さんがケースコマンドに書いたのは条件式だったから、受け付けてくれな

ちゃいました。書いたのは比較式だったから、ですね。

アックン(=^・^=)

7124 Re:ケース制御の条件式 宮城 2000/08/11-10:55
記事番号7116へのコメント
悲しげさん、佐田さん、アックン(さん)、ご教授ありがとうございます。
いいかげんにしか理解してないもので、条件式と比較式、あらためてマニュアルを読み直し、佐田さんのサイトからはガイド情報をプリントしました。
佐田さんのところの情報がここまで濃かったとは、あらためて驚嘆しております。

条件式は真(1)か偽(0)かを返す式。なんとなく納得。ちょっと道草。

いちゃもん1:Accessは True(-1)、False(0)。どうせなら統一しろ! 日本語と
       英語を統一しろというに等しいヨタ。(^^;;

いちゃもん2:環境設定の問題か、偽でヌルが返ってきたことがあります。(昨日)
       ケース(条件式=0)ヒットせず。(;_;) <1にしましたが、アッ
       クン流のケース(.NOT 条件式)が大正解ですね。

郵便番号にはため息がでます。
ひょっとして番地単位郵便番号表でも持っているのでしょうか。
配達本意に作ったんでしょうけど、郵政省側でもさぞや使いにくかろうにと同情申し上げます。
それにしても、ソフトメーカーは郵便番号辞書公開してますね。
どんなノウハウなんだか今まで興味なかったけど、ちょっと勉強してみます。

7125 Re:ケース制御の条件式ならぬ郵便番号 悲しげ 2000/08/11-13:05
記事番号7124へのコメント
おや、宮城さん

>郵便番号にはため息がでます。ひょっとして番地単位郵便番号表でも持っているの
>でしょうか。配達本意に作ったんでしょうけど、郵政省側でもさぞや使いにくかろ
>うにと同情申し上げます。

私の耳にした話では、郵便番号の下4桁だったか2桁だったかは、郵政省(配達本意)で決めたのではなく、
各自治体に全面的にお任せして決めてもらったようです。
7桁化に反対の町村では下の桁の決定を拒否していたところもあったとかで。
ま、それやこれやで、多くの場合、データベースとしての用途を考慮していない、
むしろ(郵政省側でも)泣きたくなるような形になったのではないかと思います。
このような素材をどう料理するかは、板前さんの腕が問われるんでしょうね、きっと。
私は郵便番号データは最低限しか使っていませんけど、私の直感としては、
このようにイレギュラーなデータは正統派DBMSにとっては非常に辛いだろう。
桐のように正統的じゃないDBMSの方が相対的には扱いやすいかもしんない。
いや、そうでもないかな。(^^;)
7126 Re:ケース制御の条件式ならぬ郵便番号 宮城 2000/08/11-14:28
記事番号7125へのコメント
あら、悲しげさん。(^^;;

Accessって項目毎に最大桁数設定してますね。郵政省データの展開は作業中にどんな桁数が飛び出すかわからないんで、
ちょっとした桐の優位性(とはいえ限度はあり Max,4000文字)。(^o^)v

町域までで1件に絞れたら自動セット、後は候補の表示ぐらいができればよろしいんじゃないでしょうか。
対価をとって販売するとかいうんならともかく、われわれ素人はどう登録していいやらわからないデータは「黙って捨てる」で充分許されると思います。

7127 Re:ケースの条件式 hidetake 2000/08/11-14:40
記事番号7121へのコメント
>ところで、#文字位置の欧文表記はありますか。>hidetakeさん

#文字位置については欧文表記は無いのでは無いでしょうか?
ODBC関数では #locate と表現するようですが、普通の場面では使えないようです。

あと、#文字比較 (#strcmp) と言うのもあるようですが、これは公開されていたのでしたっけ?

#strcmp("ABC",=,"aBc",3)


7130 #文字比較 (#strcmp) アックン 2000/08/11-18:20
記事番号7127へのコメント
hidetakeさん、お暑うございます。

欧文表記はないですか。
ぼくはすべてに欧文表記が欲しいです。

#文字比較 (#strcmp) が公開されているかどうかは、桐の最新版を使ってない
私にはなんとも言えないんですが、あることだけは知っていました。
でもパラメータを知りません。<(^^;だはは..
ちょっと解説してもらえますか。

アックン(=^・^=)
7134 Re:#文字比較 (#strcmp) hidetake 2000/08/12-11:43
記事番号7130へのコメント
>でもパラメータを知りません。<(^^;だはは..
>ちょっと解説してもらえますか。

私も知りません。先のコメントでリストを見直しただけでして... (^_^ゞ
で、ちょっと調べた限り、#strcmp(str1,比較演算子,str2,sw) と
なるようですが、sw の 1 と 2 の違いがわかりません。

#strcmp("abc",=,"abc",1) は完全一致で
#strcmp("abc",=,"aBc",3) とすると、大文字小文字、半角全角、
スペースの有無も含めて曖昧な条件で判定してくれるようです。


7135 Re:#文字比較 (#strcmp) アックン 2000/08/12-18:18
記事番号7134へのコメント
hidetakeさん、ありがとうございます。
私の方でも面白そうなので調べてみます。
明朝より数日間留守しますんで、帰ってからの楽しみにしときます。

アックン(=^・^=)

戻る