4D v14.3Find in array |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
Find in array
|
Find in array ( array ; valor {; inicio} ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
array | Array |
![]() |
Array a buscar | |||||
valor | Expression |
![]() |
Valor do mesmo tipo a ser buscado no array | |||||
inicio | Inteiro longo |
![]() |
Elemento no qual se inicia a busca | |||||
Resultado | Inteiro longo |
![]() |
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
Produto: 4D
Tema: Arrays
Número
230
Criado por: < 4D v6
DELETE FROM ARRAY
INSERT IN ARRAY
Size of array
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)