4D Write v14WR Direct find |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D Write v14
WR Direct find
|
WR Direct find ( BLOB ; charString ; wholeWord ; upperCase ) -> 戻り値 | ||||||||
引数 | 型 | 説明 | ||||||
BLOB | BLOB |
![]() |
4D Writeエリアを含むBLOB | |||||
charString | 文字 |
![]() |
検索する文字列 | |||||
wholeWord | 整数 |
![]() |
0= 部分一致 1= 完全一致 | |||||
upperCase | 整数 |
![]() |
0= 大文字小文字を無視 1= 大文字小文字を区別 | |||||
戻り値 | 倍長整数 |
![]() |
検索ステータス | |||||
WR Direct findコマンドは任意の4D Write エリアを含むBLOB 内で文字列を直接検索することができます。このコマンドの使用する際にBLOB を4D Writeエリア内であらかじめオープンしておく必要はありません。つまり、このコマンドはとても高速に実行されることを意味しています。
検索文字列が見つかると、WR Direct find はテキスト内の検索文字列が見つかった位置を返します。
検索が失敗した場合は、WR Direct find は-1 を返します。
blob が4D Write エリアのコンテンツでない場合、WR Direct find は-2 を返します。wholeWord にはWR Parametersテーマの以下の定数を渡すことができます:
定数 | 型 | 値 | コメント |
wr partial match | 倍長整数 | 0 | 文字列は単語全体あるいはより長い単語の一部です。 |
wr whole word | 倍長整数 | 1 | 単語は区切り文字 (スペース、句読点等) の間になければなりません。 |
upperCase にはWR Parametersテーマの以下の定数を渡す ことができます:
定数 | 型 | 値 | コメント |
wr ignore uppercase | 倍長整数 | 0 | 検索は大文字と小文字を区別せずに行われます。 |
wr case sensitive | 倍長整数 | 1 | 検索は大文字と小文字を区別して行われます。 |
この例題は、レコードの選択範囲内で検索するキーワードからの検索メソッドを示しています。データベースの内容は料理レシピです。4D Write エリアはBLOB フィールドに保存されています。特別な素材を使用したレシピをすべて検索したいものとします。ここに、大変高速なメソッドを示します。
ToFind:=Request("Enter the ingredient(s) to find:")
`検索されたレコードを配置する空のセットを作成
CREATE EMPTY SET([MyRecipes];"FoundRecords")
ALL RECORDS([MyRecipes]) `全テーブルの選択範囲をブラウズ
While(Not(End selection([MyRecipes])))
If(WR Direct find([MyRecipes]BlobRecipe_;ToFind;wr whole word;wr case sensitive)>0)
ADD TO SET([MyRecipes];"FoundRecords")
End if
NEXT RECORD([MyRecipes])
End while
USE SET("FoundRecords")
OUTPUT FORM([MyRecipes];"Output")
MODIFY SELECTION([MyRecipes];*)
プロダクト: 4D Write
テーマ: WRテキスト操作
番号:
89494
初出: 4D Write 6.5
4D Write ( 4D Write v11.6)
4D Write ( 4D Write v12)
4D Write ( 4D Write v14)
4D Write ( 4D v13)
4D Write ( 4D Write v14 R2)
4D Write ( 4D Write v14 R3)
4D Write ( 4D Write v14 R4)