Initialisation de tableau [Résolu]

Signaler
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
-
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
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 ()
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Salut Jack et merci,

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