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!

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ร