Vetor multidimensional
Moderador: Moderadores
Vetor multidimensional
Galera como trabalho com vetor multidimensional em clipper?
Algo assim
aVet := {"1","2","3","4"}
aVet[1][1] := {"A","B"}
Como faço isso usando AADD e ASCAN pra pesquisar para não inserir um item duas vezes?
Algo assim
aVet := {"1","2","3","4"}
aVet[1][1] := {"A","B"}
Como faço isso usando AADD e ASCAN pra pesquisar para não inserir um item duas vezes?
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Vetor multidimensional
Buenas,
Código: Selecionar todos
aVet := {}
AADD(aVet,{"A","B"})
IF AScan( aVet, {|a| a[2] = "B" } )=0
Alert("Nao Achou, vai adicionar")
AADD(aVet,{"A1","B2"})
ENDIFLeonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Re: Vetor multidimensional
Cara vlw pela resposta, o problema é q tenho que fazer algo mais complexo, por exemplo
aVetor := {}
Vou procurar se tem algo desses valores
{"1","2","3","4"}
Se não tiver adiciono, até aqui blz
Dai pego um campo assim: "A/B/C"
E procuro se existe A, se não existir adiciono AADD(aVetor[1],"A") então ficaria aVetor[1][1] = "A" correto?
Dai procuro se B existe em aVetor[1][1] se não adiciono B como iten do indice onde está A, entendeu?
aVetor := {}
Vou procurar se tem algo desses valores
{"1","2","3","4"}
Se não tiver adiciono, até aqui blz
Dai pego um campo assim: "A/B/C"
E procuro se existe A, se não existir adiciono AADD(aVetor[1],"A") então ficaria aVetor[1][1] = "A" correto?
Dai procuro se B existe em aVetor[1][1] se não adiciono B como iten do indice onde está A, entendeu?
Re: Vetor multidimensional
Explique melhor, por favor.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
{POG - Programação Orientada a Gambiarra}
Re: Vetor multidimensional
cara é como se fosse uma arvore...
um indice do array pode ter 0 ou N subitens...e assim sucessivamente...
um indice do array pode ter 0 ou N subitens...e assim sucessivamente...
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Re: Vetor multidimensional
Olá!
Dê uma olhada neste tópico, por você iniciado em 17-09-2009 ou neste tópico. Ambos contem exemplos de código que com certeza vão te ajudar...
Dê uma olhada neste tópico, por você iniciado em 17-09-2009 ou neste tópico. Ambos contem exemplos de código que com certeza vão te ajudar...
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Vetor multidimensional
Olá fxavierds,
Tente falar um pouco mais o que você deseja, eu particularmente não entendi o que você deseja !
Tente falar um pouco mais o que você deseja, eu particularmente não entendi o que você deseja !
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Re: Vetor multidimensional
O sistema de array não é indicado para trabalhar com arvore binária.
Se vc exemplificar o que quer, talvez seja possível achar alguma forma de resolver.
O sistema de indexação do Clipper é BTree+. Talvez seja melhor pensar em usar arquivo indexado do que o array.
Se vc exemplificar o que quer, talvez seja possível achar alguma forma de resolver.
O sistema de indexação do Clipper é BTree+. Talvez seja melhor pensar em usar arquivo indexado do que o array.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
{POG - Programação Orientada a Gambiarra}
Re: Vetor multidimensional
Aceito sugestoes...tudo q quero é construir uma arvore
se me ajudarem com isso já serve...
imagine que tenho uma tabela com um campo preenchido assim:
Registro 1: A/B/C
Registro 2: A/
Registro 3: B/C
.
.
.
Registro N: ?/?
Tenho q pegar esses valores e gerar uma arvore, os primeiros caracteres antes da "/" seram os primeiros nós, o segundos os seguintes e ai vai..
se me ajudarem com isso já serve...
imagine que tenho uma tabela com um campo preenchido assim:
Registro 1: A/B/C
Registro 2: A/
Registro 3: B/C
.
.
.
Registro N: ?/?
Tenho q pegar esses valores e gerar uma arvore, os primeiros caracteres antes da "/" seram os primeiros nós, o segundos os seguintes e ai vai..
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: Vetor multidimensional
Desta maneira como você quer fazer acho que vai ser difícil, o que você poderia fazer é o seguinte:
Acho que vai funcionar.
Abraços,
Código: Selecionar todos
Priv aVet:= {}
cLetra:="A"
AADD_(cLetra)
cLetra:="B"
AADD_(cLetra)
cLetra:="C"
AADD_(cLetra)
cLetra:="A"
AADD_(cLetra)
cLetra:="B"
AADD_(cLetra)
cLetra:="C"
AADD_(cLetra)Código: Selecionar todos
Func AADD_(cLetra)
Local nQta:=LEN(aVet)
IF nQta=0
AADD(aVet,{cLetra,"",""})
ELSE
FOR i=1 TO 3
IF aVet[nQta,i]!=cLetra
IF EMPT(aVet[nQta,i])
aVet[nQta,i]:=cLetra
ELSE
IF i=3
AADD(aVet,{cLetra,"",""})
ENDIF
ENDIF
ELSE
AADD(aVet,{cLetra,"",""})
EXIT
ENDIF
NEXT
ENDIF
Retu NilAbraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
