back to top

Aggiungere elementi a un Array in ASP/VBScript

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!

Altri contenuti interessanti

Pubblicità

Leggi anche...

Inviare mail con ASP: esempi pratici di utilizzo di CDONTS e CDOSYS

E' possibile inviare mail attraverso una pagina in Classic...

Perchè CInt restituisce un errore Overflow?

Utilizzando CInt per la definizione di variabili numeriche può...

Cosa sono chr(10) e chr(13)? E la costante vbCrLf?

All'interno di un codice ASP (o più generalmente, all'interno...

Alla scoperta di VBScript: cos’è, come funziona e come iniziare a fare scripting!

Il VBScript è un semplice linguaggio di scripting adoperabile...

Creare pagine dinamiche con ASP e Database

La potenza di ASP, e di qualsiasi linguaggio di...
Pubblicità