en ASP Classique, Comment faire si un tableau dynamique a des éléments à l'intérieur?
Si je déclare un tableau de taille dynamique comme ce
Dim myArray()
Alors comment je peux obtenir le code si ce tableau est vide ou qu'il contient des éléments?
J'ai essayé avec IsArray(myArray)
fonction qui me donnent toujours Vrai,
sinon, si j'essaie de la UBound(myArray)
fonction, j'obtiens une erreur.
Des idées? merci d'avance,
Max
- UBound(myArray) échoue également lorsque, dans une si conditionnelle? Comme dans: if UBound(myArray) <> 0 then...
- Je reçois toujours le même message d'erreur avec UBound() fonction: "erreur d'exécution Microsoft VBScript '800a0009' Indice en dehors de la gamme: 'UBound'", c'est parce que le tableau n'est pas initialisé.
Vous devez vous connecter pour publier un commentaire.
Après la déclaration du tableau, vous devez les initialiser:
Ensuite ce code fonctionnera toujours:
Edit: comme vous ne pouvez pas initialiser le tableau, ici, c'est un chemin plus long pour vérifier si il est vide ou n'est pas:
J'ai trouvé une solution, j'ai écrit une fonction spécifique pour vérifier si un tableau est null ou non; la fonction ne vérifie pas si il a des éléments à l'intérieur mais seulement si le tableau est déclaré en tant que dynamique sans dimensions et pas d'éléments.
is_null = (Err.Number = 0)
et vous pourriez renoncer à la is_null variable complètement éliminer plus de 2 états.D'abord quelques notes.
Dim A()
n'est pas tellement plus pratique en VBScript, de mieux utiliser lesReDim
.A(n)
ReDim A(-1)
est également tableau vide (pas d'éléments), mais initialisé.Et que la meilleure façon de codeurs talk est par exemples...
Comme vous le voyez, 2 fonctions avec un but différent. La différence est visible sur le tableau
d
qui "a la frontière", mais "a-pas-éléments".La seule chose à laquelle je pense maintenant est:
EDIT: Max de commentaire
J'ai toujours vérifié pour UBound = 0 et le premier élément est vide trop: