Comment tester si un tableau dynamique est vide ????

Messages postés
82
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
12 octobre 2005
- - Dernière réponse : youkizouki
Messages postés
82
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
12 octobre 2005
- 29 avril 2005 à 13:19
un p'tite question...

savez vous comment tester si un tableau dynamique possède au moins une valeur

1° ) j'ai creér 3 tableau dynamiques.

Dim tabErreur as string()
Dim tabAvertissement as String()
Dim tabReference as String()

2°) je lit les lignes d'un fichier .log et en fonction de son contenu je place la ligne dans 1 des 3 tableaux dynamique.
if ... then
i=i+1
Redim Preserve tabErreur(i)
tabErreur(i-1) = ligne
End if

3°) A la fin j'appel une procedure en lui passant en parametre le tableau dynamique mais je ne dois l'appeler que si mon tableau dynamique possède au moins une valeur... :-s

Savez vous comment tester si un tableau dynamique possède au moins une valeur ( Empty ?)
(je pensais utiliser Ubound(tab) mais erreur d'indice en dehors de la plage )

merci pour votre attention,

mika
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
21
2
Merci
tu as la réponse:

MsgBox CBool(Not (Not tabErreur))

Daniel

Dire « Merci » 2

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

Codes Sources 205 internautes nous ont dit merci ce mois-ci

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
21
1
Merci
si tableau pas dimentionné, Ubound() se plante, IsEmpty() se plante, ...

If Not (Not tabErreur) Then
MsgBox UBound(tabErreur)
End If

Daniel
Messages postés
82
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
12 octobre 2005
1
1
Merci
1 seule ligne... C'est parfait !!!

merci a vous deux...

cordialement,

mika
Messages postés
152
Date d'inscription
mercredi 30 mars 2005
Statut
Membre
Dernière intervention
5 mars 2007
0
Merci
Salut,
Je pense d'abord que tu as un problème de syntaxe sur le Ubound, tu met tab, est-ce une erreur de saisie ?. si non, tu dois mettre le nom de ton tableau Ubound(tabErreur,1), quand au 1 c'est le test sur la premiére dimension de tableau.

Fait le test si le champ est vide "", par une boucle.

En espérant t'avoir aidé
Messages postés
82
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
12 octobre 2005
1
0
Merci
bonjour starec,

* pour tab c'est une erreur de syntaxe (trop vite..)
*sinon, tu ne peux pas faire un Ubound(nomTableau) sur un tableau dynamique qui n'a pas etait initialisé...

Dim tabErreur() as String: est un tableau qui n'a pas encore de taille donc d'indice et Ubound
renvoie le plus grand indice...

Déf:
Ubound(tab,dimension) : renvoie une valeur de type
<OBJECT classid=clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11 id=alink_4 type=application/x-oleobject></OBJECT> [javascript:alink_4.Click() Long] contenant le plus grand indice disponible pour la dimension indiquée d'un
<OBJECT classid=clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11 id=alink_5 type=application/x-oleobject></OBJECT>[javascript:alink_5.Click() tableau].

je pourrais trvailler inversément, c'est a dire
1°)declarer le tableau
2°) redimensionner
3°) if ....then
tabErreur(i)=ligne
i=i+1
Redim Preserve tabErreur(i)
end if

>> mais le mon tableau serait trop grand de 1 du fait qu'il est initialiser à la fin. (inutile)

n'y a t il pas un moyen plus propre de tester cela