Limite d'un tableau

Résolu
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 - 13 mars 2008 à 13:59
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 - 13 mars 2008 à 15:23
Bonjour à tous,

Petite question générale, qui mets au grand jour mon ignorance sur certaines bases.
dans le cas:

'Déclaration de structures données
Public Type Data
    ConsFrq As Long      'Consigne vitesse
    Load As Long            'Couple relevé
    Speed As Long          'Vitesse relevée
    Cur As Long              'Courant relevé
End Type
Public ListDataW() As Data      'Tableau de données rempli à l'acquisition

Combien d'enregistrements (donc de 4 x 4 Octets)  Public ListDataW()  pourra-t-il contenir avant un dépassement de capacité.

Merci de votre réponse.

5 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 mars 2008 à 15:14
mieux vaut allouer 10 000 cases et les remplir les unes après les autres, en maintenant un index vers la prochaine case libre que de jouer a grands coups de Redim Preserve pour ajouter des cases une a une, et de Ubound sans arret.


tu alloues des tableaux de n cases... (je ne parle pas de maintenir un tableau a deux dimensions, le but etant de ne pas forcer la contiguité...) tu peux jouer avec des GlobalAlloc et y mapper un tableau de ton Type Data.
(voir http://www.vbfrance.com/codes/RGB-VICE-VERSA-TRES-RAPIDE_40189.aspx concernant le mappage de tableaux)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 mars 2008 à 14:33
un bon paquet...

alloue par blocs de millers de Data pour éviter les reallocations.
quand plus de place, alloue un autre bloc, ailleurs, evitera que le systeme ne cherche forcement de la memoire contigue...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 1
13 mars 2008 à 14:59
Merci Renfield

Mais que veux-tu dire par 'alloue par blocs de millers de Data'?

on doit préférer:

Redim ListDataW(10000)

plutot que:

Redim preserve ListDataW(index)
dans une boucle? C'est ça?
0
Big200148 Messages postés 149 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 23 juillet 2009
13 mars 2008 à 15:02
Redim Preserve te permettras de conserver les données déjà présentes dans le tableau tout en augmentant sa taille.
Redim augmente la taille du tableau mais les données présentent seront perdues
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 1
13 mars 2008 à 15:23
Merci de ton aide Renfield, Je regarde de plus prés ton code.
0
Rejoignez-nous