Creazione di dizionari
> Scritto da Matteo Gentile il giorno 07/04/2003

  Per creare dei piccoli dizionari è possibile utilizzare l'oggetto Dictionary, che è un oggetto VBScript in cui è possibile memorizzare delle coppie chiave/voce, proprio come in un dizionario.
Le voci, che possono essere dati di qualsiasi tipo, vengono memorizzate all'interno di una matrice. A ciascuna voce è associata una chiave univoca che consente di recuperare una voce specifica. Tale voce è in genere un numero intero o una stringa, ma può essere qualsiasi tipo di dati, ad eccezione di una matrice.

Il codice seguente illustra come creare un oggetto Dictionary:


Dim d     ' Creo una variabile 
Set d = CreateObject("Scripting.Dictionary") 
d.Add "a", "Atene"     ' Aggiunge chiavi e voci. 
d.Add "b", "Bucarest" 
d.Add "c", "Copenaghen" 

Il metodo Add è permette di aggiungere delle coppie chiave/voce al dizionario. E' possibile verificare se una chiave è presente all'interno di un dizionario, attraverso il metodo Exists, che restituisce True se la chiave specificata è inclusa nell'oggetto Dictionary, False in caso contrario.


If d.Exists("c") Then 
  msg = "La chiave specificata esiste." 
Else 
  msg = "La chiave specificata non esiste." 
End If 

Per leggere il contenuto di un dizionario, è possibile utilizzare degli appositi metodi e proprietà. Vediamo alcuni esempi:


Dim a, b, i, s 
a = d.Keys     ' Legge le chiavi 
b = d.Items     ' Legge le voci 
For i = 0 To d.Count -1     ' Iterazione nella matrice 
  s = s + a(i) + ": " + b(i) + "<BR>"     'Crea la stringa da restituire
Next 
Response.Write s 

Restituisce:

a: Atene 
b: Bucarest 
c: Copenaghen 

Per leggere semplicemente il valore corrispondente ad una specifica chiave si può fare così:
Response.Write d.Item("c") ' Legge la definizione corrispondente alla chiave c, cioè Copenaghen

Per modificare una chiave esistente si utilizza la proprietà Key:
d.Key("c") = "d" ' Imposta la chiave di "c" su "d".
Response.Write d.Item("d") ' Restituisce la voce associata, cioè Copenaghen.

E' ovviamente possibile anche rimuovere le coppie chiave/voce da un dizionario, utilizzando il metodo Remove per rimuovere una singola coppia e RemoveAll per svuotare il dizionario.
d.Remove("b") ' Rimuove la seconda coppia
d.RemoveAll ' Svuota il dizionario


--------------------------------------------------------------------------------------------
AZPoint.net - http://www.azpoint.net
Vietata ogni forma di duplicazione