Les tableaux de longueur nulle dans VBScript
Je dois faire quelques ASP travail et j'ai trouvé que le langage ne fournit pas un moyen de détecter le zéro de tableaux de longueur (eh bien, je suppose que vous pouvez détecter l'exception qu'ils jettent lorsque vous essayez de les utiliser...). Pourquoi serait-Split() renvoie un tableau vide si il n'est pas une façon saine de gérer ça? Ou ai-je raté quelque chose?
J'ai concocté la suite de hack pour détecter des tableaux vides, mais il y a un moyen plus facile. Qui est-il? TIA
function ArrayEmpty (a)
dim i, res
res = true
for each i in a
res = false
exit for
next
ArrayEmpty = res
end function
source d'informationauteur angus
Vous devez vous connecter pour publier un commentaire.
Pour:
Sera de retour -1 pour arr1, mais "VBScript runtime erreur: Indice en dehors de la gamme: 'UBound'" pour arr2 et arr3.
Un objectif général de la fonction permet de tester si un tableau est "Grisé" ou "Vide", devrait aussi (probablement) de tester si la variable est en fait un tableau.
Pour moi, 99% du temps quand je suis en vérifiant si un tableau est "Coté", c'est que si j'ai besoin d'obtenir le UBound de la matrice et je veux éviter à l'exécution, erreur dans le cas où le tableau n'est pas dimensionnée. Donc en général, je vais passer le UBound comme un paramètre comme:
Je ne sais pas si cette pratique permet d'enregistrer toutes les "Temps", mais il ne économiser de l'1 ligne de code avec presque tous les utiliser, et est un moyen facile de faire respecter la pratique de la vérification d'erreur.
Aussi, je comprend qu'il est complet, mais dans la pratique, la vérification de "UBound >= 0" dans IsDimmedArray:
n'est généralement pas nécessaire, car il sera généralement utilisé dans des cas comme:
Donc, dans ce cas, lintUBound = -1 et Pour ... la Prochaine sera ignorée.
Un tableau vide créé à l'aide de la
Array
fonction ou renvoyées par d'autres intrinsèque fonctions VBScript, commeSplit
a une limite supérieure de -1. Ainsi, vous pouvez tester pour un tableau vide comme ceci:Plus d'infos ici: Tests pour les Tableaux Vides.
Si votre méthode doit être en mesure de retourner un tableau vide, votre code doit être comme ceci
Array() crée un Ubound = -1 tableau qui n'a pas de boucle dans la boucle for each.
Je pense que cette ist une bonne façon de vérifier un Tableau en VBS