4D Write v16

WR Direct find

ホーム

 
4D Write v16
WR Direct find

WR Direct find 


 

WR Direct find ( BLOB ; charString ; wholeWord ; upperCase ) -> 戻り値 
引数   説明
BLOB  BLOB in 4D Writeエリアを含むBLOB
charString  文字 in 検索する文字列
wholeWord  整数 in 0= 部分一致 1= 完全一致
upperCase  整数 in 0= 大文字小文字を無視 1= 大文字小文字を区別
戻り値  倍長整数 in 検索ステータス

説明   

WR Direct findコマンドは任意の4D Write エリアを含むBLOB 内で文字列を直接検索することができます。このコマンドの使用する際にBLOB を4D Writeエリア内であらかじめオープンしておく必要はありません。つまり、このコマンドはとても高速に実行されることを意味しています。

検索文字列が見つかると、WR Direct find はテキスト内の検索文字列が見つかった位置を返します。

検索が失敗した場合は、WR Direct find は-1 を返します。

blob が4D Write エリアのコンテンツでない場合、WR Direct find は-2 を返します。

wholeWordupperCase によって、検索オプションを選択できます:

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];*)



参照 

WR Find

 
プロパティ 

プロダクト: 4D Write
テーマ: WRテキスト操作
番号: 89494

 
履歴 

初出: 4D Write 6.5

 
ARTICLE USAGE

4D Write ( 4D Write v16)