Laboratory of Mobile Agricultural Chemicals Searcher
携帯農薬検索実験室

研究会

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
82 / 114 ツリー <前へ | 次へ>

〔185〕ACFinder LocalDB版 kabe (06/05/31 22:51)

〔229〕Re:ACFinder LocalDB版 kabe (06/06/07 20:11)
〔232〕Re:ACFinder LocalDB版 Hidemi Oya (06/06/08 0:24)

〔229〕Re:ACFinder LocalDB版
 kabe WEB  (06/06/07 20:11)

引用なし
   >Hidemi Oyaさん

kabe です。

> 正規表現が使えれば、regexp '(^|、)トマト(、|$)' のような感じにすれば、「トマト」だけを検索することが可能です。
SQLite Spy(http://www.yunqa.de/delphi/sqlitespy/index.htm)を使うとこれが可能でした。このソフトは外部DLLの機能を内蔵しているみたいです。
正規表現検索部分は DIRegEx ライブラリを使っているようです。
SQLite Spy が使っていると思われるDISQLite3 というDelphi用のライブラリも同じサイトで公開されていますが、ダウンロードしてみたところ、どうも私のレベルでは使えそうもありません。
SQLite Spy で acis.db を開いて使うのが現状では最強かも(^^;

>下記ライブラリでも、regexp は使えませんかねえ?
>http://www.torry.net/
どれか、具体的に示していただければ…

〔232〕Re:ACFinder LocalDB版
 Hidemi Oya WEB  (06/06/08 0:24)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>>下記ライブラリでも、regexp は使えませんかねえ?
>>http://www.torry.net/
>どれか、具体的に示していただければ…
 SQLite で検索して出てくるコンポーネントの内のどれかという意味でした。

 が、よくよく調べてみたら、ライブラリの問題ではなく、sqlite3.dll に regexp 演算子サポート関数が実装されていないのが、使用できない原因のようです。SQLite 3.2.2 からパーサが regexp 演算子を通すようになっていますが、UTF-8 ならsqlite3_create_function() でユーザ関数として追加しなければならないので、ちょっと面倒そうです。暇が出来たら、sqlite3.dll のソースで like 関数がどのように実装されているのか確認してみます。
 ちなみに、like 演算子もユーザ関数でオーバーライドできるようなので、これを正規表現対応にするなんて使い方もできそうです。

[1] http://www.sqlite.org/changes.html#version_3_2_2
Added a REGEXP operator to the parser. There is no function to back up this operator in the standard build but users can add their own using sqlite3_create_function()

[2] http://www.sqlite.org/lang_expr.html#regexp
The REGEXP operator is a special syntax for the regexp() user function. No regexp() user function is defined by default and so use of the REGEXP operator will normally result in an error message. If a user-defined function named "regexp" is defined at run-time, that function will be called in order to implement the REGEXP operator.

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
82 / 114 ツリー <前へ | 次へ>
ページ:  ┃  記事番号:   
(SS)C-BOARD vv3.8 is Free.