funcao ascan() para vetores bidimensionais

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

fgmana
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 15 Jan 2006 12:47

funcao ascan() para vetores bidimensionais

Mensagem 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
Lopes
Usuário Nível 1
Usuário Nível 1
Mensagens: 22
Registrado em: 12 Dez 2005 16:27

Mensagem por Lopes »

Tenta usar o seguinte:

? ascan( aTeste, {|x| x[1] = 12 } )
MARINI
Usuário Nível 3
Usuário Nível 3
Mensagens: 288
Registrado em: 06 Jul 2004 08:06
Localização: Pindamonhangaba SP

Mensagem 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"} )
Sds
Marini
Responder