In un precedente articolo abbiamo parlato delle limitazioni di ASP/VBScript per quanto riguarda la gestione delle array. Purtroppo, questo linguaggio non รจ particolarmente fornito di funzioni native per la manipolazione dei vettori e ciรฒ “obbliga” gli sviluppatori a degli sforzi di fantasia. Una delle limitazioni piรน evidenti, secondo me, รจ la mancanza di una funzione per aggiungere facilmente nuovi elementi ad una array giร esistente.
Nonostante questa carenza, non c’รจ bisogno di disperare: con un po’ di creativitร , possiamo creare da soli le funzioni che ci servono.
Di seguito, propongo il codice per una funzione chiamataย array_pushย (nome ispirato alla funzione omonima inย PHP). Questa funzione richiede due argomenti: l’array su cui operare e l’elemento o gli elementi da aggiungere alla fine dell’array.
Function array_push(arr, vars)
' Dimensioniamo le variabili interne alla funzione
Dim k, newelem, newarrsize
' Verifichiamo se arr รจ un array
If IsArray(arr) Then
' Verifichiamo che vars non sia vuoto
If Len(vars) > 0 Then
' Verifichiamo se vars contiene una o piรน virgole e quindi
' se si tratta di un solo elemento o di un elenco di elementi.
' Se รจ un solo elemento...
If InStr(vars, ",") = False Then
' Incrementiamo di uno il numero di elementi
newarrsize = CInt(UBound(arr) + 1)
ReDim Preserve arr(newarrsize)
' Aggiungiamo in coda il nuovo elemento
arr(newarrsize) = vars
' Se vars รจ un elenco di elementi...
Else
' Definiamo un contatore interno con valore di partenza
' pari al numero di elementi dell'array originale + 1
k = (UBound(arr) + 1)
' Creiamo un array con tutti i nuovi elementi da aggiungere
newelem = Split(vars, ",")
' Incrementiamo il numero di elementi per contenere quelli nuovi
newarrsize = CInt(UBound(arr) + UBound(newelem) + 1)
ReDim Preserve arr(newarrsize)
' Cicliamo i nuovi elementi per aggiungerli all'array originale
For Each elem In newelem
arr(k) = Trim(elem)
k = k + 1
Next
End If
End If
array_push = arr
' Se arr non รจ un array, la funzione restituisce false
Else
array_push = False
End If
End Function
Utilizzo della Funzioneย array_push()
Ora vediamo come utilizzare la funzione appena creata:
' Testiamo la nostra funzione...
' Dimensioniamo due variabili che utilizzeremo come array
Dim ar1, ar2
' Creiamo l'array di partenza
ar1 = Array("pippo", "pluto", "topolino")
' Aggiungiamo 3 elementi.
' Nota: La funzione richiede 2 argomenti:
' 1) l'array originale
' 2) uno o piรน elementi da aggiungere.
' Se sono piรน di uno, scrivi i vari elementi separati da una virgola.
ar2 = array_push(ar1,"paperino,paperone,gastone")
' Verifichiamo che l'aggiunta abbia funzionato...
For Each x in ar2
Response.Write x & "<br />"
Next
Questa funzione puรฒ risultare molto utile se in futuro avrai bisogno di lavorare con le array in ASP/VBScript. Ti consiglio di tenerla a portata di mano!