ARMAZENANDO DADOS EM ARRAYS MULTIDIMENCIONAIS

KELLY 20/10/2014 22:36:18
#442043
Boa noite turma,

Estou com um problemão, quero armazenar algumas informações em uma Array com três colunas, mas não estou conseguindo. O comprimento é indefinido, queria usar o Redim Preserve, mas de todas as formas que eu tento dá erro. Ex.:

Para armazenar os dados abaixo:

ID Sobrenome Nome
-------------------------------
1 Davis Sara
2 Fontana Olivier
3 Leal Karina
4 Patten Pedro
5 Barreto Brian
6 Sousa Luis

Eu tento o código seguinte:

Dim Dados(0,0,0) as string
Redim Preserve Dados(1,1,1,1)
Dados(1,1,1,1)=[Ô]Davis[Ô]

Como eu consigo armazenar essas informações e em seguida consultá-las?


EPISCOPAL 21/10/2014 08:07:15
#442046
Dim Dados() as string
Redim Preserve Dados(1,1,1,1)
Dados(1,1,1,1)=[Ô]Davis[Ô]

redim preserve para matrizes bi ou tridimensionais so vai adicionar apenas o ultimo valor tipo (n,n,n,X). Para valor X ele incrementa, mas para n ele não incrementa e da erro.
o certo é ja colocar o valor em Dados(100,100,100,100) ai não dá erro
MARIOZNETO 21/10/2014 08:08:31
#442047
Resposta escolhida
O exemplo aumentar o tamanho da última dimensão de uma matriz dinâmica sem perder os dados existentes na matriz, e reduz o tamanho com perda de dados parcial. Finalmente, diminui o tamanho de volta para o valor original e reinicializa todos os elementos da matriz.

Dim intArray(10, 10, 10) As Integer
ReDim Preserve intArray(10, 10, 20)
ReDim Preserve intArray(10, 10, 15)
ReDim intArray(10, 10, 10)


A declaração de Dim cria um novo array com três dimensões. Cada dimensão é declarada com um limite de 10, então o índice de matriz para cada dimensão pode variar de 0 a 10. Na discussão, as três dimensões são chamadas da camada, linha, e a coluna.
Primeiro ReDim cria uma nova matriz que substitui a matriz existente em intArrayvariável. ReDim copia todos os elementos da matriz existente na nova matriz. Ele também adiciona 10 mais colunas ao final de cada linha em cada camada e inicializa todos os elementos nessas novas linhas em 0 (o valor padrão de Integer, que é o tipo da matriz).
Dependendo de ReDim cria outra nova matriz e copia todos os elementos que ajustaram. No entanto, cinco colunas são perdidas no final de cada linha em cada nível. Isso não é um problema se você tiver terminado de usar essas colunas. Reduzir o tamanho de uma matriz grande pode liberar mais memória que você não precisa.
Terceiro ReDim cria outra nova matriz e remove outras cinco colunas do final de cada linha em cada nível. Desta vez não copiar elementos existentes. Essa instrução retorna a matriz ao seu tamanho original. Porque a declaração não inclui o modificador de Preserve , defina todos os elementos da matriz para seus valores padrão originais.
MARIOZNETO 21/10/2014 08:10:29
#442048
Veja este endereço também do site do Bill...

http://msdn.microsoft.com/pt-br/library/wak0wfyt.aspx

Qualquer coisa posta ai....
Tópico encerrado , respostas não são mais permitidas