4D v16.3

Find in array

ホーム

 
4D v16.3
Find in array

Find in array 


 

Find in array ( array ; value {; start} ) -> 戻り値 
引数   説明
array  配列 in 検索を行う配列
value  in 配列タイプと同じタイプの検索値
start  倍長整数 in 検索を開始する配列要素番号
戻り値  倍長整数 in 検索値が見つかった最初の要素番号

説明   

Find in array コマンドは、arrayから引数valueと同じものを検索し、最初に発見された要素の番号を返します。

Find in array コマンドは、タイプがテキスト、文字列、数値、日付、ポインタ、ブールの配列に使用できます。arrayタイプとvalueのタイプは、必ず同じにしてください。

value 引数の値は、検索する要素と完全に一致している必要があります(等号演算子と同じ同じルールです。比較演算子参照)。同じ値を発見できない場合、Find in array コマンドは-1を返します。

startを指定すると、その番号の要素から検索を始めます。start引数を指定しない場合、コマンドは第1要素から検索を開始します。

以下のプロジェクトメソッドは、文字列またはテキスト配列のポインタを引数として受け、配列から空の要素をすべて削除します:

  ` CLEAN UP ARRAY プロジェクトメソッド
  ` CLEAN UP ARRAY (ポインタ)
  ` CLEAN UP ARRAY (->テキストまたは文字配列)
 
 C_POINTER($1)
 REPEAT
    $vlElem:=Find in array($1->;"")
    If($vlElem>0)
       DELETE FROM ARRAY($1->;$vlElem)
    End if
 Until($vlElem<0)

このプロジェクトメソッド実装後、以下のように記述できます:

 ARRAY TEXT(atSomeValues;...)
  ` ...
  ` 配列を使用した処理を行う
  ` ...
  ` 空文字の要素を削除する
 CLEAN UP ARRAY(->atSomeValues)

次のプロジェクトメソッドは、最初の引数で渡した配列(ポインタ指定)中、第二引数で渡した変数やフィールド(ポインタ指定)の値に一致する最初の要素を選択します:

  ` SELECT ELEMENT プロジェクトメソッド
  ` SELECT ELEMENT (ポインタ; ポインタ)
  ` SELECT ELEMENT ( ->テキストまたは文字配列; -> テキストまたは文字変数またはフィールド)
 
 $1->:=Find in array($1->;$2->)
 If($1->=-1)
    $1->:=0 ` 値が要素中に見つからない場合、要素を選択しない
 End if

このプロジェクトメソッド実装後、以下のように記述できます:

  ` asGender ポップアップメニュオブジェクトメソッド
 Case of
    :(Form event=On Load)
       SELECT ELEMENT(->asGender;->[People]Gender)
 
 End case

注: この例では配列の選択された要素を使用します。選択された要素は、配列内の要素数が32,767個を超える場合には意味をなさない点に注意して下さい(配列とフォームオブジェクトを参照して下さい)。この場合、Find in arrayの結果を保存するためには倍長整数変数を使用する必要があります。



参照 

Count in array
DELETE FROM ARRAY
Find in sorted array
INSERT IN ARRAY
Size of array

 
プロパティ 

プロダクト: 4D
テーマ: 配列
番号: 230

This command can be run in preemptive processes

 
履歴 

初出: < 4D v6

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)