一括表示

[No.13955] ワイルドカード検索 投稿者:JG1MOU浜田  投稿日:2016/01/24(Sun) 18:40:17

コールサイン以外の、全角文字列がある部分もワイルドカード検索ができるように
してみました。
http://hamlog.no.coocan.jp/mou/index.html
テスト中ですが、うまく動作しているようです。

ワイルドカードは、MS-DOSのときの*や?と同じ考えです。


[No.13956] Re: ワイルドカード検索 投稿者:JP7CZE 川辺  投稿日:2016/01/24(Sun) 23:31:26

> コールサイン以外の、全角文字列がある部分もワイルドカード検索ができるように
> してみました。
> http://hamlog.no.coocan.jp/mou/index.html
> テスト中ですが、うまく動作しているようです。
>
> ワイルドカードは、MS-DOSのときの*や?と同じ考えです。

浜田さん、いつもアップデートご苦労様です。

動作の問題ではなく、使う側のちょっとした使い方の問題ですが。。。

その後の進捗状況にあるように、
>氏名/QTH/Remarks欄のワイルドカード 検索では
>全角文字があるので\*で任意の文字列、\?で任意の1文字としました。
ですね。

実際に、「浜田 博」さんとの更新記録を検索する場合をやってみました。

検索語 → 結果
「浜田」 → 
「浜田*」 → 当然該当なし
「浜田\*」 → 検索語「浜田」に同じ

他の「浜田」さんを除外して「浜田 博」さんのみを拾いたいので...
「浜田?博」 → 当然該当なし
「浜田\?博」 → あれれ?該当なし
「浜田\*博」 → 「浜田 博」さんのみに絞り込めました。

「浜田\?博」がためだったのは、氏と名の間が、全角ではなく、半角スペース×2 だったからですが、
(つまりは 「浜田\?\?博」 で検索できる)
半角スペース×2 か 全角スペースかわからない場合は、「\*」の使用がいいですね。

【2016/01/24(Sun) 23:34:10 投稿者により修正されました。】


[No.13963] Re: ワイルドカード検索 投稿者:JG1MOU浜田  投稿日:2016/01/25(Mon) 21:04:56

> 半角スペース×2 か 全角スペースかわからない場合は、「\*」の使用がいいですね。

川辺さん、こんばんは! いつも有難うございます。
ワイルドカード検索は、MS-DOS時代のコマンドラインの経験が無いと、敷居が高い
かも知れませんね。
検索には、再帰呼び出し関数を使って実現してます。

今回、全角文字にも対応したのは、Shift-JISをunicodeに変換すれば、半角全角混在
の文字列から簡単に検索できるのではないか、と思いついたからです。

通常のコールサイン欄では、ミドルレターが取れなかった場合、JP7C?E
ラストレターが取れた場合は、JP7*E といった感じで過去データやユーザーリスト
からサーチしますので、重宝してます。
パーシャルチェックって感じでしょうか。
http://hamlog.no.coocan.jp/html/HID00112.html

7月に山形へ行く予定ですので、お会いできることを楽しみにしてます。

【2016/01/25(Mon) 21:54:50 投稿者により修正されました。】


[No.13964] Re: ワイルドカード検索 投稿者:JP7CZE 川辺  投稿日:2016/01/25(Mon) 23:50:35

浜田さん,

> ワイルドカード検索は、MS-DOS時代のコマンドラインの経験が無いと、敷居が高い
> かも知れませんね。

ワイルドカード検索もですが,通常の検索も含めて,
どのように書けば効率よくヒットできるか,慣れていないと非常に難しいですね.

> 検索には、再帰呼び出し関数を使って実現してます。
> 今回、全角文字にも対応したのは、Shift-JISをunicodeに変換すれば、半角全角混在
> の文字列から簡単に検索できるのではないか、と思いついたからです。

なるほど.

> 通常のコールサイン欄では、ミドルレターが取れなかった場合、JP7C?E
> ラストレターが取れた場合は、JP7*E といった感じで過去データやユーザーリスト
> からサーチしますので、重宝してます。
> パーシャルチェックって感じでしょうか。
> http://hamlog.no.coocan.jp/html/HID00112.html

私も,ワイルドカード的検索ができたらと思っていたので,非常にありがたいです.

ところで,7C?E と取れた場合ですが,サフィックスサーチで,
「C?E」なら,JP7CZE も候補に出てきますので,候補が7エリアで1つならそのまま確定できます(実際には私の場合,基本的には相手からフルコールサインが確認できるまで確定しません).
「7CZE」や「7C」なら従来通り,部分一致の候補が出てきます.
ところが,聞き取れた「7C?E」そのままでサフィックスサーチをかけると,候補が出てきません.この場合には,「*7C?E」とする必要があります.まあ,「7C?E」ではサフィックスではないので,仕方ないかもしれませんが.

> http://hamlog.no.coocan.jp/html/HID00112.html
拝見させて思ったのですが,従来のサフィックス・サーチがヘルプに書かれているとおりだとすれば,今回,ワイルドカード・サーチを作られたわけなので,どうせなら,概念からすれば,サフィックス・サーチの例の下2つ(「A1A」と「JA1A」)は,サフィックスではないので,サフィックス・サーチに含めないで,「部分文字列・サーチ」として,ほかの2つと並列の扱いにした方がわかりやすいのかなと思います.

なので,タイトルは,「サフィックス・サーチ/ワイルドカード・サーチ/部分文字列・サーチ」と.

あと,ワイルドカード・サーチですが,ヘルプではEnterキーがトリガーになるように書いてありますが.実際にはCtrl+Enterでもできてしまいます(このほうが検索の場合はCtrl+Enter,確定の場合にはEnterと統一できて良い?).

コールサインの入力欄に文字列が入ってCtrl+Enterキーが押された場合,実際にどのように判定して分岐させているかといいう内部的な問題があるのかもしれませんが,外見上は,この辺のところ,もうちょっと例も含めて,整理していただければありがたいです.

> 7月に山形へ行く予定ですので、お会いできることを楽しみにしてます。

こちらこそお会いできることを楽しみにしています.

【2016/01/26(Tue) 00:21:54 投稿者により修正されました。】


[No.13965] Re: ワイルドカード検索 投稿者:JP7CZE 川辺  投稿日:2016/01/26(Tue) 08:11:34

整理しなければならないのは,私の頭の中ですね(^^;

> ところで,7C?E と取れた場合ですが,サフィックスサーチで,
> 「C?E」なら,JP7CZE も候補に出てきますので,候補が7エリアで1つならそのまま確定できます(実際には私の場合,基本的には相手からフルコールサインが確認できるまで確定しません).
> 「7CZE」や「7C」なら従来通り,部分一致の候補が出てきます.
> ところが,聞き取れた「7C?E」そのままでサフィックスサーチをかけると,候補が出てきません.この場合には,「*7C?E」とする必要があります.まあ,「7C?E」ではサフィックスではないので,仕方ないかもしれませんが.

ワイルドカード文字(*, ?)が含まれていると,文字列の先頭の文字から始まり文字列の最後尾の文字で終わる文字列の”完全”一致になるのでしたね.
「7C?E」なら,「?」が含まれているので,「7」で始まり「E」で終わる4文字の文字列がヒットする対象になるので,「J」から始まる6文字の文字列が検索でヒットしないのは当然ですね.

失礼しました.