Limite d'un tableau [Résolu]

Messages postés
491
Date d'inscription
mercredi 1 février 2006
Dernière intervention
18 novembre 2016
- - Dernière réponse : jimy neutron
Messages postés
491
Date d'inscription
mercredi 1 février 2006
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.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
3
Merci
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

Merci Renfield 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
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
Commenter la réponse de Renfield
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Dernière intervention
18 novembre 2016
0
Merci
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?
Commenter la réponse de jimy neutron
Messages postés
150
Date d'inscription
mardi 30 septembre 2003
Dernière intervention
23 juillet 2009
0
Merci
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
Commenter la réponse de Big200148
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Dernière intervention
18 novembre 2016
0
Merci
Merci de ton aide Renfield, Je regarde de plus prés ton code.
Commenter la réponse de jimy neutron

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.