- · Niveau : INTERMÉDIAIRE
- · Compatibilité : Serveur NT/2000 IIS
Un « array » est en fait un tableau d’une ou plusieurs dimensions. Pour ceux qui ne connaissent pas beaucoup les tableaux, sachez que ç’a toujours été un des outils les plus utilisés en programmation (avant l’invention du XML). Il permet de manipuler un grand nombre de données en mémoire qu’il consomme aussi beaucoup. Particulièrement lors de redimension de tableau, car il faut allouer deux fois plus d’espace mémoire. À utiliser avec parcimonie!
Syntaxe : Array(list)
Paramètre : « list » est la série de mots séparés par des virgules qui seront insérés dans le tableau.
Exemples
La forme la plus simple du tableau est de déclarer une variable qui sera automatiquement transformée en tableau.
<%
dim aTableau
aTableau = array("Lundi","Mardi", ... ... "Dimanche")
%>
Déclaration d’une variable de tableau avec un nombre de données prédéterminé.
<%
dim aTableau(6)
aTableau(0) = "Dimanche"
aTableau(1) = "Lundi"
aTableau(2) = "Mardi"
aTableau(3) = "Mercredi"
aTableau(4) = "Jeudi"
aTableau(5) = "Vendredi"
aTableau(6) = "Samedi"
%>
Déclaration d’une variable de tableau dynamique sans spécifier le nombre de données.
<%
dim aTableau()
redim aTableau(6)
aTableau(0) = "Dimanche"
aTableau(1) = "Lundi"
aTableau(2) = "Mardi"
aTableau(3) = "Mercredi"
aTableau(4) = "Jeudi"
aTableau(5) = "Vendredi"
aTableau(6) = "Samedi"
%>
L’idée est de « Redimentionner » (redim) notre tableau selon les besoins. On peut redimensionner autant de fois que l’on veut un tableau, mais sachez que c’est très lourd en mémoire. Les données sont perdues à chaque redimension. Pour préserver les données à la suite d’un redimensionnement, spécifier « Preserve » comme le démontre cet exemple qui redimension le tableau à chaque nouvelle entrée.
<%
dim nI
dim aTableau() ’ Tableau dynamique
For nI = 0 to 6
redim Preserve aTableau(nI)
aTableau(nI) = WeekdayName(nI+1)
Next
%>
RESULTAT : Création d’un tableau contenant 7 éléments :
aTableau("Lundi","Mardi", ... ... "Dimanche").
Méthodes et propriétés
« Ubound » : Permet de connaître la dernière position d’un tableau. On peut ainsi boucler tous les éléments du tableau.
<%
dim nI
for nI = 0 to ubound(aTableau)
response.write aTableau(nI) & "<br />"
next
%>
Ceci dit, rien de mieux que « for each » pour faire le même travail.
<%
for each sItem in aTableau
response.write sItem & "<br />"
next
%>
Pour connaître le véritable nombre total d’éléments d’un tableau, si jamais ce dernier ne commence pas à zéro (comme tout bon tableau), utiliser « LBound » pour aussi connaître la première position du tableau de façon à la soustraire de la dernière position.
<%
response.write "Nombre d’élément : " & UBound(aTableau) - LBound(aTableau) + 1
%>
Tri
Il n’existe aucune méthode pour trier un tableau en ASP. Un « tri à bulle » (bubble sort) peut être utilisé sur un petit tableau, mais utilisez « QuickSort » dès que le nombre d’éléments augmente. Sinon, je vous conseille le JavaScript ou Jscript côté serveur qui permet avec la méthode « sort() » de trier un grand nombre d’éléments sans effort.