SUGESTOES

USUARIO.EXCLUIDOS 13/04/2004 17:25:16
#20371
Estou com o seguinte problema.... Eu tenho o seguinte código

Private type DadosGerais
Descricao as string
DataCadastro as date
ETC....
End Type

Declaro um array

Dim teste(1000) as DadosGerais
Eu gardo as informaçõpes do array e vou manipulando as conforme for necessario.

Gostaria de saber outra forma de programação que faça a mesma coisa que esse código faça.... só que com performace melhor.

E como faço para usar o redim nessa array

Obrigado

Thiago
USUARIO.EXCLUIDOS 13/04/2004 19:02:32
#20394
Resposta escolhida
Utilizar um Collection, de fato propicia um mecanismo melhor para trabalho com tipos de usuário do que um vetor, além de tornar o REDIM desnecessário. Ponto para o MHTERRES.

Mas a colocação feita pelo JOSE.NIZ é perfeitamente "digerível", com relação ao que você quer ("...como faço para o consumir o minimo de memoria possivel..... "), pois cada item da matriz consome, além da memória reservada aos tipos de dados de cada item do seu tipo de usuário, mais 4 bytes por item e outros tantos (quase 20), se houver algum componente do tipo variant, esteja a matriz preenchida ou não.

Refazer a estrutura, de forma á utilizar um collection, de qualquer forma, já economizará recursos. E repensar o seu tipo de usuário (verificando a necessidade efetiva do tipo de dados em cada item) é muito importante também.

Dê preferência aos tipos Integer, Single, Byte, sempre que possível. Dentre eles, o Byte é o que menos consome recursos. Dentre todos, o Variant é o mais "comilão".

O collection não é uma propriedade, mas sim, um objeto. Deve ser dimensionado e instanciado para ser utilizado, ou seja, algo como:
...
Dim oMyCollection as Collection
Set oMyCollection = New Collection
...
oMyCollection.Add nVar
...
Msgbox oMyCollection.Item(n).DataCadastro
...
oMyCollection.Remove x
...
E por aí vai, hehehe!

Tópico encerrado , respostas não são mais permitidas