Asp e gli Array

0 Condivisioni

In ASP possiamo considerare un array come un formato di dati corrispondente ad un elenco di elementi dove ogni elemento è contraddistinto da una coppia di chiave e valore.

asp - Asp e gli Array

Di norma, si usa raccogliere sotto il termine informatico array sia gli elementi matematici corrispondenti a vettori sia le matrici. Gli array partono per natura da zero (0) e non da uno (1), ma possiamo anche gestirli partendo dal valore che ci interessa o anche manipolarli con valori non consecutivi.

Vediamo comunque un primo esempio:

Dim myArray(1)

myArray(0) = "this"
myArray(1) = "that"
ReDim Preserve myArray(2)
myArray(2) = "theother".

Gli array sono indicizzati a zero, questo significa che se scrivo come sopra Dim my Array(1) significa che ho riservato due “righe” del nostro array, la riga 0 e la riga 1.

Per variare la dimensione di un array mantenendo inalterato il precedente contenuto (a meno di accorciare la dimensione dell’array ovviamente), uso Redim con la clausola Preserve identicamente a come avveniva in Visual Basic.

COME OPERARE CON GLI ARRAY MONODIMENSIONALI
 

-Split-

Esempio:

Dim MyString, MyArray
MyString = "Paola,Mario,Luca"
MyArray = Split(MyString, ",")

-LBound/ UBound-
Mi restituisce il valore più basso e alto rispettivamente dell’array specificato. Il numero massimo di  elementi disponibili nell’array, oltre all’ArrayName si può specificare l’elemento da controllare come meglio spiegato nel seguito.

LBound(ArrayName).

 

ARRAY MULTIDIMENSIONALI
Di sintassi intuitiva si dichiarano così: Dim MyArray(x, y)  dove x=colonne e y=righe. Eccovi un chiaro esempio di come poter usare un array multidimensionale:

Dim myArray(2,3)
'myArray(col,row)
'Array def is (dept,item,cost)
myArray(0,0) = "housewares"
myArray(1,0) = "sauce pan"
myArray(2,0) = "22.50"
myArray(0,1) = "housewares"
myArray(1,1) = "toaster"
myArray(2,1) = "12.50"
myArray(0,2) = "housewares"
myArray(1,2) = "wooden spoon"
myArray(2,2) = "4.50"
myArray(0,3) = "housewares"
myArray(1,3) = "oven cleaner"
myArray(2,3) = "2.50"
Response.Write("<table border=2>")
Response.Write("<tr><td>Row</td><td>Department</td>")
Response.Write("<td>Item Name</td><td>Cost</td></tr>")
For i = 0 to UBound(myArray, 2)
Response.Write("<tr><td>#" & i & "</td>")
Response.Write("<td>" & myArray(0,i) & "</td>")
Response.Write("<td>" & myArray(1,i) & "</td>")
Response.Write("<td>" & myArray(2,i) & "</td></tr>")
Next
Response.Write("</table>")


Ecco il risultato:

Row Department Item Name Cost
0 housewares sauce pan 22.50
1 housewares toaster 12.50
2 housewares wooden spoon 4.50
3 housewares oven cleaner 2.50

L’unico passaggio ostico di questo codice è il passaggio dove viene preso in considerazione il ciclo For:

UBound(MyArray, 2) significa che prendo il valore maggiore del secondo elemento dell’array (cioè il numero massimo delle righe, “2”). Il ciclo “For” serve in altre parole per riempire tutta la tabella, fino
all’ultima riga disponibile.

 

RECORDSET E ARRAY MULTIDIMENSIONALI

Vediamo subito il codice:

sql = "select * from myTable"
Set RS = Conn.Execute(sql)
'Mette il Recordset nell'array
Dim myArray()
numRows = 0
Do While NOT RS.EOF
numRows = numRows + 1
ReDim Preserve myArray(3, numRows)
myArray(0, numRows - 1) = RS(0)
myArray(1, numRows - 1) = RS(1)
myArray(2, numRows - 1) = RS(2)
myArray(3, numRows - 1) = RS(3)
RS.MoveNext
Loop

Ciao Fab


0 Condivisioni

Fabrizio Cannatelli

Fondatore di Informarea.it, è un appassionato di informatica. Ha lavorato per molti anni come Analista Programmatore presso varie aziende utilizzando diversi linguaggi di sviluppo, oggi svolge un lavoro completamente diverso ma la voglia di comunicare e di condividere con il web i suoi studi e le sue curiosità lo hanno spinto a far nascere questo blog non solo per esprimere e mostrare la passione per questo mondo, ma anche per confrontarsi con nuove esperienze di sviluppo.

Fabrizio Cannatelli

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.