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

Signaler
Messages postés
82
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
12 octobre 2005
-
Messages postés
82
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
12 octobre 2005
-
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

5 réponses

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

MsgBox CBool(Not (Not tabErreur))

Daniel
2
Merci

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

Codes Sources 106 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
26
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 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

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
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