4D v14.3

Find in array

Página Inicial

 
4D v14.3
Find in array

Find in array 


 

Find in array ( array ; valor {; inicio} ) -> Resultado 
Parâmetro Tipo   Descrição
array  Array in Array a buscar
valor  Expression in Valor do mesmo tipo a ser buscado no array
inicio  Inteiro longo in Elemento no qual se inicia a busca
Resultado  Inteiro longo in Número do primeiro elemento no array que corresponde ao valor

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.

Se não se encontra nenhum elemento, Find in Array devolve –1.

Se especifica 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.

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 )
 
 C_POINTER($1)
 Repeat
    $vlElem:=Find in array($1->;"")
    If($vlElem>0)
       DELETE FROM ARRAY($1->;$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)

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 )
 
 $1->:=Find in array($1->;$2->)
 If($1->=-1)
    $1->:=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=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 [#title id="267"/]). Neste caso, é necessário utilizar uma variável de tipo inteiro longo para armazenar o resultado de Find in array.

 
PROPRIEDADES 

Produto: 4D
Tema: Arrays
Número 230

 
HISTÓRIA 

Criado por: < 4D v6

 
VER TAMBÉM 

DELETE FROM ARRAY
INSERT IN ARRAY
Size of array

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v11 SQL Release 6)
Manual de linguagem 4D ( 4D v12.4)
Manual de linguagem 4D ( 4D v14 R2)
Manual de linguagem 4D ( 4D v14 R3)
Manual de linguagem 4D ( 4D v13.5)
Manual de linguagem 4D ( 4D v14.3)

Parent of : Find in array ( 4D v14 R4)