In un precedente articolo abbiamo parlato delle limitazioni di ASP/VBScript per quanto riguarda la gestione degli array. Purtroppo, questo linguaggio non è particolarmente ricco di funzioni native per la manipolazione dei vettori, il che “obbliga” gli sviluppatori a sforzi creativi. Una delle limitazioni più evidenti è la mancanza di una funzione per aggiungere facilmente nuovi elementi a un array esistente.
Nonostante questa carenza, non c’è bisogno di disperare: con un po’ di creatività, possiamo creare noi stessi le funzioni che ci servono per lavorare con gli array in modo efficace.
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: di seguito un esempio pratico sull’uso della funzione array_push.
' 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 gli array in ASP/VBScript. Ti consiglio di tenerla a portata di mano!
Conclusione
In conclusione, anche se ASP/VBScript presenta delle limitazioni nella gestione degli array, con un po’ di impegno possiamo superarle e contribuire a rendere il nostro lavoro più efficiente. Spero che questa guida ti sia stata utile e ti invitiamo a esplorare ulteriormente le potenzialità di ASP/VBScript!