Initialisation de tableau

Résolu
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 - 19 déc. 2013 à 14:46
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 - 19 déc. 2013 à 15:42
Bonjour,

J'ai un tableau défini comme suit:

Private p_astrWndList() as String

pour le remplir dans le code, j'utilise les 2 lignes suivantes:
Redim p_astrWndList(BH_UBound(p_astrWndList) + 1)
p_astrWndList(BH_UBound(p_astrWndList) = (une chaîne de caractères)

BH_UBound est une fonction perso' qui me renvoie -1 si un tableau est vide au lieu de générer bêtement une erreur:

Public Function BH_UBound(SArray As Variant) As Long
   On Error GoTo EmptyArray
   BH_UBound = UBound(SArray)
   Exit Function
   
EmptyArray:
   BH_UBound = -1
End Function


ma question est la suivante:
Je suis quelquefois obligé de réinitialiser mon tableau pour reconstruire ma liste, or je ne vois pas comment faire pour obtenir un tableau vide.
Redim demande une dimension, or si je spécifie 0 (zéro), je n'obtiens pas un tableau vide pais un tableau à une dimension qui elle, est vide.
Si je définis un autre tableau (vide) et qui le reste pour réinitialiser mon 1er tableau comme dans le code ci-dessous:

dim aMyArray() as string
astrWndList=aMyArray
j'obtiens une erreur 458 (la variable utilise un type automation non gérer par VB)
Déjà que je trouve les 2 lignes ci-dessous pas efficientes en terme mémoire, si quelqu'un avait une solution, ce serait sympa.

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
19 déc. 2013 à 15:28
Salut

As-tu essayé la méthode Erase ?
Erase monTablo()
Cette méthode réinitialise ton tableau mais sans index, comme s'il venait d'être dimensionné en ()
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
19 déc. 2013 à 15:42
Salut Jack et merci,

Non d'ailleurs je l'ignorais mais c'est exactement ce que je cherchais.
Ca marche nikel.
0
Rejoignez-nous