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!