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

■14152 / ResNo.10)  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 / ResNo.11)  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 / ResNo.12)  Re[8]: [英単語] を単語単位で検索・絞込する方法
□投稿者/ ONnoji -(2024/02/18(Sun) 10:24:40)
    [拡張辞書順]をチェックしている時に[絞り込み]出来ませんでした。

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

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

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

    Search_By_Word_flashcard.kex

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

    p.s.

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

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

<前のレス10件

スレッド内ページ移動 / << 0 | 1 >>

このスレッドに書きこむ

Mode/  Pass/

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

- Child Tree -
- Antispam Version -