Find in array
Find in array* ( array ; valor {; inicio} ) : Integer
| Parâmetro | Tipo | Descrição | |
|---|---|---|---|
| array | Array | → | Array a buscar | 
| valor | Expression | → | Valor do mesmo tipo a ser buscado no array | 
| inicio | Integer | → | Elemento no qual se inicia a busca | 
| Resultado | Integer | ← | Número do primeiro elemento no array que corresponde ao valor | 
Descrição
comando Find in array devolve o número do primeiro elemento do Array que corresponde a valor.
Find in array pode se utilizar com arrays de tipo Texto, Alfa, Numérico, Data, Apontador e Booleano. Os parâmetros Array e valor devem ser do mesmo tipo.
valor deve ser exatamente igual ao elmento a encontrar (mesmas regras que as aplicadas ao operador de igualdade, ver Operadores de Comparação). Se nenhum resultado for encontrado, Find in array retorna –1.
Nota: Com arrays Objeto, pode usar apenas referências de objeto no parâmetro valor
Se especificar principio, o comando começa a busca no número de elemento especificado por principio. Se não se especifica principio, o comando começa a busca no elemento 1.
Exemplo 1
O método de projeto a seguir deleta todos os elementos apagados do string ou array de texto cujo ponteiro é passado como parâmetro:
  // Método de projecto LIMPAR ARRAY
  // LIMPAR ARRAY ( Ponteiro )
  // LIMPAR ARRAY ( -> Array de Texto ou Alfa )
 
 #DECLARE ($arrPtr : Pointer) : Pointer
 Repeat
    $vlElem:=Find in array($arrPtr->;"")
    If($vlElem>0)
       DELETE FROM ARRAY($arrPtr->;$vlElem)
    End if
 Until($vlElem<0)
Depois de implementar este método de projeto em uma base, pode escrever:
 ARRAY TEXT(atValores;...)
  // ...
  // Utilizar o array como quiser
  // ...
  // Eliminar os elementos de cadeias vazias
 LIMPAR ARRAY(->atValores)
Exemplo 2
O método de projeto a seguir selecionar o primeiro elemento de um array cujo ponteiro passa como primeiro parâmetro que corresponde ao valor da variável ou campo cujo ponteiro é passado como parâmetro:
  // Método de projeto SELECIONAR ELEMENTO
  // SELECIONAR ELEMENTO( Ponteiro ; Ponteiro)
  //SELECIONAR ELEMENTO ( -> Array Texto ou Alfa ; -> Campo ou variável de tipo Texto ou Alfa )
 
 #DECLARE($arrPtr : Pointer ; $varPtr : Pointer)
$arrPtr->:=Find in array($arrPtr->; $varPtr->)
 If($tabPtr->=-1)
    $tabPtr->:=0 // Se um elemento não é encontrado, fixar o array em um elemento não selecionado
 End if
Depois de implementar este método em um banco, você pode escrever:
  // Método de objeto de menu suspenso asGenero
 Case of
    :(Form event code=On Load)
       SELECIONAR ELEMENTO(->asGenero;->[Pessoas]Genero)
 
 End case
//``
**Nota:** este exemplo utiliza o **elemento selecionado** do array. Leve em conta que o elemento selecionado não é significativo se o array contém mais de 32.767 elementos (ver *Arrays e objetos de formulário*). Neste caso, é necessário utilizar uma variável de tipo inteiro longo para armazenar o resultado de **Find in array**. 
## Exemplo 3 
Para encontrar uma referência de objeto
```4d
 ARRAY OBJECT($objects;100)
$o1:={a10;b"xyz"}
 $o2:={a10;b"xyz"}
 
 $objects{20}:=$o1
 var $p : Integer
 
 $p:=Find in array($objects;$o1) //$p = 20 
 $p:=Find in array($objects;$o2) //$p = -1 
 $p:=Find in array($objects;{a10;b"xyz"}) //$p = -1
Ver também
Count in array
DELETE FROM ARRAY
Find in sorted array
INSERT IN ARRAY
Size of array
Propriedades
| Número do comando | 230 | 
| Thread-seguro | ✓ |