VBScript - Matrici

Cos'è un array?

Sappiamo molto bene che una variabile è un contenitore per memorizzare un valore. A volte, gli sviluppatori sono in grado di contenere più di un valore in una singola variabile alla volta. Quando una serie di valori viene archiviata in una singola variabile, è nota comearray variable.

Dichiarazione di matrice

Gli array vengono dichiarati nello stesso modo in cui è stata dichiarata una variabile, tranne per il fatto che la dichiarazione di una variabile array utilizza le parentesi. Nell'esempio seguente, la dimensione dell'array è menzionata tra parentesi.

'Method 1 : Using Dim
Dim arr1() 'Without Size

'Method 2 : Mentioning the Size
Dim arr2(5) 'Declared with size of 5

'Method 3 : using 'Array' Parameter
Dim arr3
arr3 = Array("apple","Orange","Grapes")
  • Sebbene la dimensione dell'array sia indicata come 5, può contenere 6 valori poiché l'indice dell'array inizia da ZERO.

  • L'indice dell'array non può essere negativo.

  • Gli array VBScript possono memorizzare qualsiasi tipo di variabile in un array. Quindi, un array può memorizzare un numero intero, una stringa o caratteri in una singola variabile di array.

Assegnazione di valori a un array

I valori vengono assegnati all'array specificando il valore dell'indice dell'array rispetto a ciascuno dei valori da assegnare. Può essere una stringa.

Esempio

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim arr(5)
         arr(0) = "1"            'Number as String
         arr(1) = "VBScript"     'String
         arr(2) = 100            'Number
         arr(3) = 2.45           'Decimal Number
         arr(4) = #10/07/2013#   'Date
         arr(5) = #12.45 PM#     'Time

         document.write("Value stored in Array index 0 : " & arr(0) & "<br />")
         document.write("Value stored in Array index 1 : " & arr(1) & "<br />")
         document.write("Value stored in Array index 2 : " & arr(2) & "<br />")
         document.write("Value stored in Array index 3 : " & arr(3) & "<br />")
         document.write("Value stored in Array index 4 : " & arr(4) & "<br />")
         document.write("Value stored in Array index 5 : " & arr(5) & "<br />")

      </script>
   </body>
</html>

Quando il codice sopra viene salvato come .HTML ed eseguito in Internet Explorer, produce il seguente risultato:

Value stored in Array index 0 : 1
Value stored in Array index 1 : VBScript
Value stored in Array index 2 : 100
Value stored in Array index 3 : 2.45
Value stored in Array index 4 : 7/10/2013
Value stored in Array index 5 : 12:45:00 PM

Matrici multidimensionali

Gli array non sono limitati solo a una dimensione singola e possono avere un massimo di 60 dimensioni. Gli array bidimensionali sono quelli più comunemente usati.

Esempio

Nell'esempio seguente, una matrice multidimensionale viene dichiarata con 3 righe e 4 colonne.

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim arr(2,3)	' Which has 3 rows and 4 columns
         arr(0,0) = "Apple" 
         arr(0,1) = "Orange"
         arr(0,2) = "Grapes"           
         arr(0,3) = "pineapple" 
         
         arr(1,0) = "cucumber"           
         arr(1,1) = "beans"           
         arr(1,2) = "carrot"           
         arr(1,3) = "tomato"    
         
         arr(2,0) = "potato"             
         arr(2,1) = "sandwitch"            
         arr(2,2) = "coffee"             
         arr(2,3) = "nuts"            
                  
         document.write("Value in Array index 0,1 : " &  arr(0,1) & "<br />")
         document.write("Value in Array index 2,2 : " &  arr(2,2) & "<br />")

      </script>
   </body>
</html>

Quando il codice sopra viene salvato come .HTML ed eseguito in Internet Explorer, produce il seguente risultato:

Value stored in Array index : 0 , 1 : Orange
Value stored in Array index : 2 , 2 : coffee

Dichiarazione di Redim

L'istruzione ReDim viene utilizzata per dichiarare le variabili di matrice dinamica e allocare o riallocare lo spazio di archiviazione.

ReDim [Preserve] varname(subscripts) [, varname(subscripts)]
  • Preserve - Un parametro facoltativo utilizzato per preservare i dati in un array esistente quando si modifica la dimensione dell'ultima dimensione.

  • varname - Un parametro obbligatorio, che denota il nome della variabile, che dovrebbe seguire le convenzioni di denominazione delle variabili standard.

  • subscripts - Un parametro obbligatorio, che indica la dimensione dell'array.

Esempio

Nell'esempio seguente, un array è stato ridefinito e quindi conservato i valori quando la dimensione esistente dell'array viene modificata.

Note - Dopo aver ridimensionato un array più piccolo di quanto fosse originariamente, i dati negli elementi eliminati andranno persi.

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim a()
         i = 0
         redim a(5)
         a(0) = "XYZ"
         a(1) = 41.25
         a(2) = 22
           
         REDIM PRESERVE a(7)
         For i = 3 to 7
         a(i) = i
         Next
           
         'to Fetch the output
         For i = 0 to ubound(a)
            Msgbox a(i)
         Next
      </script>
   </body>
</html>

Quando salviamo lo script sopra come HTML e lo eseguiamo in Internet Explorer, produce il seguente risultato.

XYZ
41.25
22
3
4
5
6
7

Metodi di matrice

Ci sono varie funzioni integrate in VBScript che aiutano gli sviluppatori a gestire gli array in modo efficace. Di seguito sono elencati tutti i metodi utilizzati insieme agli array. Fare clic sul nome del metodo per conoscerlo in dettaglio.

Funzione Descrizione
LBound Una funzione, che restituisce un numero intero che corrisponde al più piccolo indice degli array dati.
UBound Una funzione, che restituisce un numero intero che corrisponde all'indice più grande degli array dati.
Diviso Una funzione, che restituisce una matrice che contiene un numero specificato di valori. Diviso in base a un delimitatore.
Aderire Una funzione, che restituisce una stringa che contiene un numero specificato di sottostringhe in una matrice. Questa è una funzione esattamente opposta del metodo Split.
Filtro Una funzione, che restituisce una matrice in base zero che contiene un sottoinsieme di una matrice di stringhe in base a criteri di filtro specifici.
IsArray Una funzione, che restituisce un valore booleano che indica se la variabile di input è o meno un array.
Cancellare Una funzione, che recupera la memoria allocata per le variabili dell'array.