SUGESTOES
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
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
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!
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