Página 1 de 1

Como saber quantas colunas tem um vetor?

Enviado: 24 Jun 2015 19:38
por rubens
Olá...

Tenho um vetor

Código: Selecionar todos

aMenu := {;
              {'Cadastros','Cada',1},;
              {'Manutencao','Manu',1},;
              {'Relatorios','Relat',3},;
              {'Utilitaros',aUtilit,9};
              }
Como faço para saber quantas colunas tem em cada linha?

Obrigado
Rubens

Como saber quantas colunas tem um vetor?

Enviado: 24 Jun 2015 19:57
por alxsts
Olá!

O comprimento de vetores em xBase é retornado pela função Len(). Exemplos:

Código: Selecionar todos

LOCAL aArray 

   // atribui elementos simples a aArray, transformando-o em um vetor unidimensional
   aArray := { "a","b","c" }
   ? Len( aArray ) // --> 3

   // atribui elementos que também são arrays a aArray, transformando-o em um vetor bidimensional
   aArray := {;
            {'Cadastros','Cada',1},;
            {'Manutencao','Manu',1},;
            {'Relatorios','Relat',3},;
            {'Utilitaros',aUtilit,9};
            }

      // Comprimento do array
      ? Len( aArray ) // --> 4

      // Comprimento de cada dimensão do array
      ? Len( aArray[ 1 ] ) // --> 3

Como saber quantas colunas tem um vetor?

Enviado: 24 Jun 2015 21:14
por rubens
Beleza...
Obrigado

Para baixo, a qtde de linhas eu sabia, agora para a direita, qtde de colunas não...
Valeu...

Rubens

Como saber quantas colunas tem um vetor?

Enviado: 25 Jun 2015 08:30
por sambomb
Vale lembrar que o número de colunas não precisa ser o mesmo para todas as linhas, é possível ter cada linha com um tamanho diferente.

Como saber quantas colunas tem um vetor?

Enviado: 25 Jun 2015 15:57
por microvolution
PESSOAL boa tarde!
como o SAMBOMB foi muito feliz em sua colocação, é exatamente sobre essa questão que tenho dúvida.

Estou criando um MENU que contenha algumas colunas 3 ou 4 em cada linha.

Se eu considerar que todos tem 3 (e de fato não há quantidade menor de colunas) não gera erro.
Se eu considerar que todos tem 4 aí gera um erro pois, como disse, alguns tem 3 ou 4 colunas.

Então, como fazer para testar se um valor existe dentro de uma matriz/vetor?

exemplo:

Código: Selecionar todos

local matriz1 :={}

aadd({matriz1,'cadastros','consultas','relatorios'})
aadd({matriz1,'clientes'})
aadd({matriz1,'fornecedores'})
aadd({matriz1,,'fornecedores'})

etc etc
Bom, olhando assim é muito fácil de saber que falta os elementos 2 e 3 na segunda linha e falta o elemento 1 e 3 na terceira linha.

Se eu fizer uma rotina que não sabe diferenciar que os elementos 1 e 3 da 3ª linha existem, gerará um erro.
Então, como faço pra testar se existe tais elementos? já tentei um tipo assim:
if (matriz1[1])=nil
? 'elemento inexistente'
endif
o compilador apresenta um erro de RUN-TIME.

Como faço pra resolver essa minha dúvida?

Por enquanto é só:
Ah! EU DECLARO QUE DEUS EXISTE e independente de nos existirmos Ele sempre existiu, existe e sempre existirá! Se você crê ou não, se é ateu ou atoa, DEUS EXISTE!

Como saber quantas colunas tem um vetor?

Enviado: 25 Jun 2015 17:46
por sambomb

Código: Selecionar todos

For nLinha := 1 to Len(aLinhas)
   ? Len(aLinhas[nLinha]) 
End

Como saber quantas colunas tem um vetor?

Enviado: 26 Jun 2015 09:39
por rubens
Então Sandro...
Até aí tudo bem...
Mas se tiver um vetor assim:
aCadastro := { 'Incluir','{||Incluir()',,'Incluir novo cliente'}}
Como eu sei se existe o terceiro elemento, como o o Microevolution disse...?

Rubens