Bound Error.. Array Access
Moderador: Moderadores
-
rangelssilva
- Usuário Nível 1

- Mensagens: 48
- Registrado em: 27 Jul 2007 15:24
- Localização: São Paulo - SP
Bound Error.. Array Access
Ao filtrar certos dados para serem colocados num vetor, utilizando achoice resulta em vazio....
Gostaria de saber como poderia fazer uma condicional dizendo se for vazio faça tal coisa... POis senão aparece a seguinte msg de erro: Bound Error array access....
If VenvetBr={}
Comandos
endif
Seria dessa maneira.. Não sei ao certo pois ten assim e deu errado....
Como utilizar uma condicional para isso...
Agradeço a colaboração amigos programadores.....
:'(
Gostaria de saber como poderia fazer uma condicional dizendo se for vazio faça tal coisa... POis senão aparece a seguinte msg de erro: Bound Error array access....
If VenvetBr={}
Comandos
endif
Seria dessa maneira.. Não sei ao certo pois ten assim e deu errado....
Como utilizar uma condicional para isso...
Agradeço a colaboração amigos programadores.....
:'(
Editado pela última vez por rangelssilva em 07 Mar 2008 22:56, em um total de 1 vez.
Seu teste está correto. Mas não é necessário obter o tamanho da matriz. Você pode usar a forma simples de teste IF EMPTY(Matriz) que já é suficiente. Contudo, é importante lembrar que isso só funciona para matrizes unidimensionais. Se fosse uma matriz multidimensional, seria necessário proceder múltiplos testes em cada matriz interna.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Permita-me colega Maligno, exemplificar para melhor comprensão de todos.
Quando temos uma MATRIZ multidimensional, por exemplo:
MATRIZ:={{},{},{}}
Perceba que esta matriz é composta por outras três matrizes "aninhadas" e elas estão VAZIAS. No entanto se precisar saber se estão vazias, você deveria testar matriz a matriz, como por exemplo assim:
Agora como disseram os colegas Adalberto e Maligno, para o caso que seu VETOR ou MATRIZ seja UNIDIMENSIONAL, é só fazer:
Melhor explicado que isso é só dois, três, quatro disso... hihihi
Quando temos uma MATRIZ multidimensional, por exemplo:
MATRIZ:={{},{},{}}
Perceba que esta matriz é composta por outras três matrizes "aninhadas" e elas estão VAZIAS. No entanto se precisar saber se estão vazias, você deveria testar matriz a matriz, como por exemplo assim:
Código: Selecionar todos
MATRIZ:={{},{},{}}
* MATRIZ:={{"a","bb"},{1,2,3},{date(),.T.}} // Habilite esta linha p/ver outro exemplo
VAZIA:=.T.
FOR I=1 TO LEN(MATRIZ)
IF LEN(MATRIZ[I])>0
VAZIA:=.F.
EXIT
ENDIF
NEXT
IF VAZIA=.T.
? "Matriz sem elemento algum. Vazia."
ELSE
CONTA:=0
FOR I=1 TO LEN(MATRIZ)
CONTA:=CONTA+LEN(MATRIZ[I])
NEXT
? "Matriz com "+ALLTRIM(STR(CONTA))+" elemento"+(IF(CONTA=0,"","s"))+". Nao esta vazia."
ENDIFCódigo: Selecionar todos
VenvetBr={}
* VenvetBr={} // Habilite esta linha para ver outro exemplo
VenvetBr={}
* VenvetBr={"AAA","BBB"} // Outro exemplo
VAZIA:=.T.
CONTA:=LEN(VenvetBr)
IF CONTA=0
? "Matriz sem elemento algum. Vazia."
ELSE
? "Matriz com "+ALLTRIM(STR(CONTA))+" elemento"+(IF(CONTA=0,"","s"))+". Nao esta vazia."
ENDIFUm clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
-
rangelssilva
- Usuário Nível 1

- Mensagens: 48
- Registrado em: 27 Jul 2007 15:24
- Localização: São Paulo - SP
Obrigado gente.... As vezes fica dificil pensar em muita coisa, principalmente quando se trabalha o dia todo..fiquei 4,5 anos construindo um pequenos sistema para controle de venda e leilões onde posso admistrar melhor meus bens..... Se eu fuzesse so isso e fosse um programador porfissional poderia fazer algo mais complexo> Como sei que aqui tem muita gente experiente , fica mais fácil conseguir o que se precisa depois que me esgotaram as energias...
Vou testar as opções e qualquer dúvida mando um post novamente.......
Tenham um ótimo fim de semana....
Boas programação...

Vou testar as opções e qualquer dúvida mando um post novamente.......
Tenham um ótimo fim de semana....
Boas programação...
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Bound Error.. Array Access
gente, de acordo com os exemplos postados, não sei se compreendi ao certo.
Estou a fazer um MENU GRÁFICO e os PROMPTs e os ACTIONs estou fazendo assim:
Acontece que a partir da linha COMENTADA (se não estiver comentada) aparece um erro de array. Na verdade preciso via programação verificar se esta posição está EMPTY/NIL, pra não dar o erro de array. Só que se colocar essa linha em funcionamento dá erro, se eu não colocá-la o erro para.
Agradeço a atenção de todos!
Ah! EU DECLARO QUE DEUS EXISTE! independente de sua crença nEle ou não, Ele sempre existiu e sempre existirá!
Estou a fazer um MENU GRÁFICO e os PROMPTs e os ACTIONs estou fazendo assim:
Código: Selecionar todos
DEFINE MAIN MENU
for I=1 TO LEN(MENU_GUI)
if MENU_GUI[I,1]='HOR'
if !empty(MENU_GUI[I,2])
POPUP MENU_GUI [I,2]
// END POPUP
endif
if !empty(MENU_GUI[I,3])
POPUP MENU_GUI [I,3]
// END POPUP
endif
if !empty(MENU_GUI[I,4])
POPUP MENU_GUI [I,4]
// END POPUP
endif
// if !empty(MENU_GUI[I,5])
// POPUP MENU_GUI [I,5]
// END POPUP
// endif
// if !empty(MENU_GUI[I,6])
// POPUP MENU_GUI [I,6]
// END POPUP
// endif
elseif MENU_GUI[I,1]='CAD'
MENUITEM MENU_GUI [I,1] ACTION MENU_GUI [I,2]
elseif MENU_GUI[I,1]='CAD1'
SEPARATOR
POPUP MENU_GUI [I,2]
END POPUP
endif
END POPUP
nextAgradeço a atenção de todos!
Ah! EU DECLARO QUE DEUS EXISTE! independente de sua crença nEle ou não, Ele sempre existiu e sempre existirá!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!


