| 4D Write v15WR Direct find | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D Write v15
 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 v15)
	
	
	
	
	
	
	
 コメントを追加
コメントを追加