Página 1 de 1

funcao ascan() para vetores bidimensionais

Enviado: 15 Jan 2006 12:52
por fgmana
Ola pessoal

Alguem ja fez alguma utilizacao da funcao ascan() para pesquisar vetores com mais de uma dimensao ? Digo , o ascan() funciona bem para vetores (uma so dimensao) mais quando vc coloca duas ou mais colunas no vetor nao funciona. Exemplo o codigo abaixo imprime 0 na tela.

Declare aTeste [ 2 , 3 ]

aTeste [ 1 , 1 ] = 12
aTeste [ 1 , 2 ] = "FABIO"
aTeste [ 1 , 3 ] = date()

aTeste [ 2 , 1 ] = 14
aTeste [ 2 , 2 ] = "JOAO"
aTeste [ 2 , 3 ] = date()+5


? ascan( aTeste , 12 )

IMPRIME 0 , quando deveria imprimir 1

Alguem pode me ajudar ?
Desde ja agradeco qquer informacao.

[]'s
Fabio

Enviado: 16 Jan 2006 11:32
por Lopes
Tenta usar o seguinte:

? ascan( aTeste, {|x| x[1] = 12 } )

Enviado: 16 Jan 2006 12:14
por MARINI
Somente para complentar a orientação acima, que está correta, você tambem pode carregar o vetor multidimensional conforme exemplo abaixo, assim não precisa saber o seu tamanho antecipadamente:

LOCAL aTeste:={}
AADD(aTeste,{12,"FABIO",date()})
AADD(aTeste,{14,"JOAO",date()+5})

? ASCAN( aTeste , {|x|x[1]=14} )
? ASCAN( aTeste , {|x|x[2]=="FABIO"} )