HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■14141 / inTopicNo.1)  [英単語] を単語単位で検索・絞込する方法
  
□投稿者/ いぶけん -(2024/02/16(Fri) 21:54:30)
    2024/02/16(Fri) 22:22:09 編集(投稿者)

    [英単語]の項目
    例)"war" で検索(単語として検索したい)
    【対象にしたい】
    American Civil War
    be at war など

    【非対象にしたい】
    be aware of
    How are things at
    warranty など

    拡張辞書off、ワイルドカードも使えそうになさそうです。
    やり方があればご教授お願いします

    桐10sです
引用返信 [メール受信/OFF] 削除キー/
■14142 / inTopicNo.2)  Re[1]: [英単語] を単語単位で検索・絞込する方法
□投稿者/ ONnoji -(2024/02/17(Sat) 12:08:13)
    2024/02/18(Sun) 10:26:22 編集(投稿者)
    2024/02/17(Sat) 13:09:08 編集(投稿者)

    > [英単語]の項目
    > 例)"war" で検索(単語として検索したい)
    > 【対象にしたい】
    > American Civil War
    > be at war など
    >
    > 【非対象にしたい】
    > be aware of
    > How are things at
    > warranty など
    >
    > 拡張辞書off、ワイルドカードも使えそうになさそうです。
    > やり方があればご教授お願いします

    すでに拙作:整形ユーティリティ( utx_list3 )では、単語単位の検索機能を実装してあります。

    そこで、拙作の手続きを流用して簡単なサンプルを作りました。

    サンプルでは、いわゆる単語単位の検索は可能ですが、絞り込みは出来ません。

    ちなみに、"war" の検索で、war War が見つかりますが、wAr waR も見つかります。(^^ゞ

    ※拙作:整形ユーティリティでは "war" の検索で war は見つかりますが、War wAr waR は見つかりません

    サンプルは数日を目途に削除しますのでダウンロードはお早めに願います。


引用返信 [メール受信/OFF] 削除キー/
■14143 / inTopicNo.3)  Re[2]: [英単語] を単語単位で検索・絞込する方法
□投稿者/ ONnoji -(2024/02/17(Sat) 13:42:50)
    > サンプルでは、いわゆる単語単位の検索は可能ですが、絞り込みは出来ません。

    一般手続き:prcString検索実行 の代入文を次のように変更すると絞り込みになります


    【変更前】

      &macro = "検索 " + &action + "&fieldName_&expression, 終了状態 = &status"

    【変更後】

      &macro = "絞り込み " + "&fieldName_&expression, 終了状態 = &status"

    取り急ぎお知らせまで。(^^ok


引用返信 [メール受信/OFF] 削除キー/
■14144 / inTopicNo.4)  Re[1]: [英単語] を単語単位で検索・絞込する方法
□投稿者/ うにん -(2024/02/17(Sat) 14:20:59)
    計算結果で絞り込みする手法を使って、比較式を
    #COND(#文字位置(" "+#UC([])+" "," WAR "),[],1,[]+"a")
    のようにすればできるかな。

引用返信 [メール受信/OFF] 削除キー/
■14146 / inTopicNo.5)  Re[1]: [英単語] を単語単位で検索・絞込する方法
□投稿者/ 通りすがり -(2024/02/17(Sat) 14:45:46)
    えっと、回答ではなく話のタネ
    一括処理定義画面ならば、文字列検索ダイアログで簡単一発(笑)
754×360 => 250×119

1708148746.jpg
/88KB
引用返信 [メール受信/OFF] 削除キー/
■14147 / inTopicNo.6)  Re[3]: [英単語] を単語単位で検索・絞込する方法
□投稿者/ ONnoji -(2024/02/17(Sat) 15:13:48)
    2024/02/17(Sat) 16:31:37 編集(投稿者)
    2024/02/17(Sat) 16:29:09 編集(投稿者)

    サンプルは、[先頭行から・次の行から・前の行から]の3通りの探索(検索)を行うので、

    実際の動きがよく確認できると思います。

    しかし、操作性を重視しているので、どんな仕掛けなのか分かりにくいですね。

    ということで、種明かしをしておきますね。

    例えば、"war" を検索するとします。

     元の文字列       半角空白文字を     #lc2関数で       表現式(検索・絞り込みの比較式)
                 半角コンマに置換    英小文字に変換
     American Civil War → American,Civil,War → american,civil,war → #対応番号( "american,civil,war", #lc2( "war" ) ) <> 0


     元の文字列  半角空白文字を    表現式(検索・絞り込みの比較式)
            半角コンマに置換
     be at war → be,at,war    → #対応番号( #lc2( "be,at,war" ), #lc2( "war" ) ) <> 0

     実際には、                 半角の空白文字 半角のコンマ
                                 ↓  ↓
      &expression = "#対応番号( #lc2( #文字置換( [項目名], " ", "," ) ), #lc2( "war" ) ) <> 0"
      検索 [項目名]_&expression
       または
      絞り込み [項目名]_&expression

     または、                    半角の空白文字 半角のコンマ
                                   ↓  ↓
      検索 [項目名]{ #対応番号( #lc2( #文字置換( [項目名], " ", "," ) ), #lc2( "war" ) ) <> 0 }
       または
      絞り込み [項目名]{ #対応番号( #lc2( #文字置換( [項目名], " ", "," ) ), #lc2( "war" ) ) <> 0 }


    (重要)
      この説明では、すべて空白文字は半角だと想定していますが、
      もしも、全角の空白文字を含んでいる場合には、#文字置換()関数で全角空白文字を半角のコンマに置換する処理も必要になります。
      ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
    > be at war など
          ↑
      この空白文字は全角の空白でしたよ


    以上、種明かしオワリ。(^^)ok
     
    ちなみに、拙作:整形ユーティリティ( utx_list3 )では、#lc2( )関数は使用していません。

    これは、桐の変数名は英大文字と英小文字が区別されるためです。

    【参考】21.6 比較式の左辺と右辺の両方に計算式を指定する|桐の釣魚大全のトップ > フォームアプリケーション教書 第2部
        http://silicon7565.html.xdomain.jp/guide/guide_Part2.htm#section21-6
引用返信 [メール受信/OFF] 削除キー/
■14148 / inTopicNo.7)  Re[2]: [英単語] を単語単位で検索・絞込する方法
□投稿者/ いぶけん -(2024/02/17(Sat) 18:45:37)
    ONnojiさん、ファイルわざわざありがとうございます。

    早速、「Search_By_Word.zip」をDLし、解凍しました。
    Search_By_Word.kex
    Search_By_Word.tbl
    Search_By_Word.wfx

    上記3ファイルを現状の英単語帳「flashcard.tbx」とどのように紐づけすれば
    よろしいのでしょうか?
引用返信 [メール受信/OFF] 削除キー/
■14149 / inTopicNo.8)  Re[3]: [英単語] を単語単位で検索・絞込する方法
□投稿者/ ONnoji -(2024/02/17(Sat) 19:10:15)
    2024/02/17(Sat) 19:45:13 編集(投稿者)

    > 早速、「Search_By_Word.zip」をDLし、解凍しました。
    > Search_By_Word.kex
    > Search_By_Word.tbl
    > Search_By_Word.wfx
    >
    > 上記3ファイルを現状の英単語帳「flashcard.tbx」とどのように紐づけすれば
    > よろしいのでしょうか?

    flashcard.tbx から[書き出し:表の枠組み]で出力したファイルを添付してください。

    当方で Search_By_Word.wfx を書き換えた物を再度アップします。

引用返信 [メール受信/OFF] 削除キー/
■14150 / inTopicNo.9)  Re[4]: [英単語] を単語単位で検索・絞込する方法
□投稿者/ いぶけん -(2024/02/17(Sat) 20:17:50)
    2024/02/17(Sat) 21:07:14 編集(投稿者)
    2024/02/17(Sat) 20:18:51 編集(投稿者)

    ありがとうございます
    枠組みファイル添付しました

    ちなみに、本ファイル名は別名です
引用返信 [メール受信/OFF] 削除キー/
■14151 / inTopicNo.10)  Re[5]: [英単語] を単語単位で検索・絞込する方法
□投稿者/ ONnoji -(2024/02/17(Sat) 20:37:07)
    > ありがとうございます
    > 枠組みファイル添付しました

    項目番号 項目名  データ型
     1    単語   文字列  ← 検索する項目はこれでよいでしょうか?
     2    品詞   文字列
     3    発音記号 文字列
     4    意味   文字列
     5    類例   文字列
     6    重要   文字列
     7    ソース  文字列
     8    カテゴリ 文字列
     9    覚    文字列
     10   変化形  文字列
     11   検索   文字列
     12   詳細   文字列
     13   登録日  日時
     14   更新日1 日時
     15   更新日2 日時
     16   更新日3 日時

     一覧表印刷条件 印刷01

    検索する項目は[単語]でよろしいでしょうか???

    絞り込み機能も必要でしょうか????

    > ちなみに、本ファイル名は別名です

    ファイル名は何でも構いません。

    最終的には、ご自身でフォームの編集対象表を書き換えてください。

    p.s.

    枠組みを入手したので添付ファイルは削除していただいて構いませんよ。



引用返信 [メール受信/OFF] 削除キー/
■14152 / inTopicNo.11)  Re[6]: [英単語] を単語単位で検索・絞込する方法
□投稿者/ いぶけん -(2024/02/17(Sat) 21:06:44)
    > 項目番号 項目名  データ型
    >  1    単語   文字列  ← 検索する項目はこれでよいでしょうか?
    >  2    品詞   文字列
    >  3    発音記号 文字列
    >  4    意味   文字列
    >  5    類例   文字列
    >  6    重要   文字列
    >  7    ソース  文字列
    >  8    カテゴリ 文字列
    >  9    覚    文字列
    >  10   変化形  文字列
    >  11   検索   文字列
    >  12   詳細   文字列
    >  13   登録日  日時
    >  14   更新日1 日時
    >  15   更新日2 日時
    >  16   更新日3 日時
    >
    >  一覧表印刷条件 印刷01
    >
    > 検索する項目は[単語]でよろしいでしょうか???
    >
    > 絞り込み機能も必要でしょうか????
    >
    >>ちなみに、本ファイル名は別名です
    >
    > ファイル名は何でも構いません。
    >
    > 最終的には、ご自身でフォームの編集対象表を書き換えてください。



    >1    単語   文字列  ← 検索する項目はこれでよいでしょうか?
    はい。これでお願いします


    > 絞り込み機能も必要でしょうか????
    検索・絞り込み両方可能なら、両方欲しいです。
    どちらかだけなら、検索でお願いします

    よろしくお願いします。

引用返信 [メール受信/OFF] 削除キー/
■14153 / inTopicNo.12)  Re[7]: [英単語] を単語単位で検索・絞込する方法
□投稿者/ ONnoji -(2024/02/17(Sat) 21:38:36)

    添付ファイルを解凍すると次のファイルがあります。

    flashcard.tbx
    Search_By_Word_flashcard.kex
    Search_By_Word_flashcard.wfx

    >>ちなみに、本ファイル名は別名です
    >
    > ファイル名は何でも構いません。
    >
    > 最終的には、ご自身でフォームの編集対象表を書き換えてください。

    フォーム:Search_By_Word_flashcard.wfx を再定義して、

    [フォームの参照表][フォームの編集対象表]を書き換えてください。

    p.s.

    なお、数日を目途に削除しますのでダウンロードはお早めに願います。


引用返信 [メール受信/OFF] 削除キー/
■14160 / inTopicNo.13)  Re[8]: [英単語] を単語単位で検索・絞込する方法
□投稿者/ ONnoji -(2024/02/18(Sun) 10:24:40)
    [拡張辞書順]をチェックしている時に[絞り込み]出来ませんでした。

    ※[先頭から]と同じ動作をしているためです

    改修したイベント処理ファイルを添付します。

    添付ファイルを解凍すると次のファイルがあります。

    Search_By_Word_flashcard.kex

    既存のファイルに上書きしてください。

    p.s.

    なお、数日を目途に削除しますのでダウンロードはお早めに願います。

引用返信 [メール受信/OFF] 削除キー/
■14205 / inTopicNo.14)  Re[9]: [英単語] を単語単位で検索・絞込する方法
□投稿者/ ONnoji -(2024/03/03(Sun) 11:57:53)
    例文にはピリオド( . )がありませんでしたので対応しませんでしたが、

    もしも、

    ・フォースを使え。感じるのだ。 Use the Force. Feel it.

    ・フォースと共にあらんことを。 May the Force be with you.

    のような例文の場合、文末の Force it you が見つかりません。

    もしも。必要ならば以下のように改修してください。


    手続き定義開始 prcString検索実行( 文字列 &fieldName, 文字列 &string, 文字列 &parameter, 整数 &mode, 整数 &searchByWord )
     変数宣言 自動,文字列{ &icon, &title = "prcString検索実行( )", &msg }
     変数宣言 自動,文字列{ &expression, &ankWQ = #jis( #hex("22") ), &knjWQ = #jis( #hex("2149") ), &asterisk = #jis( #hex("2A") ) }
     変数宣言 自動,文字列{ &macro, &action, &order }
     変数宣言 自動,整数 { &status, &return }
     変数宣言 自動,文字列{ &orgString } /* 2015.06.01 */
     変数宣言 自動,文字列{ &chrList = "{,},`,~,|" } /* 2019.05.21 */
     変数宣言 自動,文字列{ &character }       /* 2019.05.21 */

     変数宣言 自動,文字列{ &SP = #jis( #hex("20") ), &knjSP = #jis( #hex("2121") ) }
     変数宣言 自動,文字列{ &commaAnk = #jis( #hex("2C") ) }
     変数宣言 自動,文字列{ &dotAnk  = #jis( #hex("2E") ) } /* 2024.03.03 */

     変数宣言 自動,文字列{ &traceMsg = &title }
     変数宣言 自動,整数 { &traceON }

     ** 2024.02.17 utx_list3.kev / prcString検索実行 より流用

     **&traceON = 1
     条件 ( &traceON ) トレース出力 &traceMsg + "を実行開始しました"

     &order   = #cond( &mode, ":E", 1, #u )
     &action   = #cond( &parameter = "次行", "∨, ", &parameter = "前行", "∧, ", 1, #u )
     &orgString = &string /* 2015.06.01 */
     &character = &string

     条件 ( &traceON ) トレース出力 "if ( .not &searchByWord ) … " + #str( .not &searchByWord )
     if ( .not &searchByWord )

      if ( #対応番号( &chrList, &character ) = 0 ) /* 2019.05.21 */

       &string   = #文字置換( &string, &knjWQ, &knjWQ + &knjWQ )
       &string   = #文字置換( &string, &ankWQ, &ankWQ + &ankWQ )
       &expression = &asterisk + &ankWQ + &string + &ankWQ + &asterisk + &order
      else

       ** 単一文字の {, }, `, ~, | ならば
       if ( &mode ) /* 単一文字の {, }, `, ~, | を拡張辞書順で検索するとNG */

        &expression = "#文字位置( #半角([単語]), " + &ankWQ + &character + &ankWQ + ") <> 0"
       else

        &expression = &asterisk + &ankWQ + &string + &ankWQ + &asterisk /* 拡張辞書順でなければOK */
       end
      end

      if ( &parameter = "絞り込み" )
       &macro = "絞り込み " + "&fieldName_&expression, 終了状態 = &status"
      else
       &macro = "検索 " + &action + "&fieldName_&expression, 終了状態 = &status"
      end
      コマンド &macro
      条件 ( &traceON ) トレース出力 _&macro
      条件 ( &traceON ) トレース出力 _&status
      ** 戻り値 説明
      ** 1 該当する行が存在した。処理対象行は、検索した行に移動する。
      ** -1 該当する行が存在しなかった。処理対象行は移動しない。
      ** このパラメータを指定せず、該当する行が存在しない場合は、終端行に移動します。

     else

      条件 ( &traceON ) トレース出力 _&action
      条件 ( &traceON ) トレース出力 _&string
      条件 ( &traceON ) トレース出力 #文字置換( #文字置換( [単語], &SP, &commaAnk ), &knjSP, &commaAnk )

      &string   = #文字置換( &string, &knjWQ, &knjWQ + &knjWQ )
      &string   = #文字置換( &string, &ankWQ, &ankWQ + &ankWQ )

      **&expression = "#対応番号( #文字置換( #文字置換( [単語], &SP, &commaAnk ), &knjSP, &commaAnk ), " + &ankWQ + &string + &ankWQ + " ) <> 0"
      **&expression = "#対応番号( #lc2( #文字置換( #文字置換( [単語], &SP, &commaAnk ), &knjSP, &commaAnk ) ), " + &ankWQ + #lc2( &string ) + &ankWQ + " ) <> 0"
      &expression = "#対応番号( #lc2( #文字置換( #文字置換( #文字置換( [単語], &SP, &commaAnk ), &knjSP, &commaAnk ), &dotAnk, &commaAnk ) ), " + &ankWQ + #lc2( &string ) + &ankWQ + " ) <> 0"
      条件 ( &traceON ) トレース出力 _&expression

      if ( &parameter = "絞り込み" )
       &macro = "絞り込み " + "&fieldName_&expression, 終了状態 = &status"
      else
       &macro = "検索 " + &action + "&fieldName_&expression, 終了状態 = &status"
      end

      コマンド &macro
      条件 ( &traceON ) トレース出力 _&macro
      条件 ( &traceON ) トレース出力 _&status

     end

     if ( &status = -1 .or &parameter = "絞り込み" .and #eof )

      &msg = "検索文字が見つかりません"
      &msg = &msg + "\n" + #複写( "-", 50 )
      &msg = &msg + "\n\n" + &ankWQ + &string + &ankWQ
      **&msg = &msg + "\n\n" + &ankWQ + &orgString + &ankWQ
      &msg = &msg + "\n\n検索方向 :" + #cond( &parameter <> #u, #cond( &parameter = "前行", "↑", &parameter = "次行", "↓", 1, &parameter ), 1, "先頭から" )

      if ( .not &mSearchByWord )
       &msg = &msg + "\n\n拡張辞書順:" + #cond ( &mode, "ON", 1, "OFF" )
      else
       &msg = &msg + "\n\n単語単位:ON"
       &msg = &msg + "\n\n<重要>"
       &msg = &msg + "\n\n単語単位の検索対象の文字列は"
       &msg = &msg + "\n\n空白文字(全角・半角)、または半角コンマ(,)で区切られている必要があります"
       &msg = &msg + "\n\n※注意:検索する文字列に空白文字(全角・半角)、または半角コンマ(,)が含まれていると検索に失敗します"
       &msg = &msg + "\n\n<ヒント>"
       &msg = &msg + "\n\n単語単位のチェックをオフ(OFF) にして検索してみてください"
      end

      メッセージボックス  &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する

     end

     条件 ( &traceON ) トレース出力 &traceMsg + "を実行終了しました"
    手続き定義終了

    p.s.

    もしも、解決したらですが・・・

    解決済み! BOX/ 解決したらチェックしてください!


引用返信 [メール受信/OFF] 削除キー/
■14206 / inTopicNo.15)  Re[2]: [英単語] を単語単位で検索・絞込する方法
□投稿者/ うにん -(2024/03/03(Sun) 19:41:38)
    ピリオドがある場合の話が出てきましたが、単語の区切りとして扱う文字は全部空白に置換してしまえば同じことです。
    ピリオドだけ処理を追加すると(「VOL」が検索する文字列の例)
    #COND(#文字位置(" "+#UC(#文字置換([],"."," "))+" ", " VOL "),[],1,[]+"A")
引用返信 [メール受信/OFF] 削除キー/
■14207 / inTopicNo.16)  Re[3]: [英単語] を単語単位で検索・絞込する方法
□投稿者/ ONnoji -(2024/03/03(Sun) 21:48:23)
    2024/03/03(Sun) 21:53:36 編集(投稿者)

    横レス失礼します。m(__)m

    > ピリオドがある場合の話が出てきましたが、単語の区切りとして扱う文字は全部空白に置換してしまえば同じことです。

    Yes, や No, もあるので、コンマも対象にした方が良いかもです・・・(^^ゞ

    ちなみに、当方のサンプルは #対応番号( [field], "word" ) <> 0 で判定しているので元々必要ありませんけど。

引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

Mode/  Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -