Ritorno con un'altra domanda... Esiste una funzione per sapere quante dimensioni ha un array?
Ritorno con un'altra domanda... Esiste una funzione per sapere quante dimensioni ha un array?
http://195.234.171.31/~admin15/index...d=31&Itemid=42Originariamente inviato da rinosan_76
Ritorno con un'altra domanda... Esiste una funzione per sapere quante dimensioni ha un array?
non ho trovato risposta nel tuo link...
La funzione UBound di VBScript restituisce l'indice piu elevato per la dimensione dell'array che viene indicata. Viene utilizzata per conoscere la dimensione di un array.
La sintassi è la seguente:
UBound (array, dimensione)
array è il nome dell'array, dimensione indica la dimensione di cui si vuole conoscere l'indice massimo: 1 è la prima dimensione, 2 la seconda, e cosi via...
Esempio:
codice:<% Dim myArray(6, 2, 9, 3) 'array a 4 dimensioni UBound(myArray, 1) 'restituisce 6 UBound(myArray, 3) 'restituisce 9 %>
Ok... scusa, ma non mi sono spiegato bene...
Io volevo sapere non la dimensione dell'array, ma il numero di dimensioni.
Istruzione ReDim
Consente di dichiarare variabili di matrici dinamiche e di assegnare o riassegnare lo spazio di memorizzazione a livello di routine.
ReDim [Preserve] nomevar(indici) [, nomevar(indici)] . . .
Argomenti
Preserve
Conserva i dati di una matrice esistente quando viene modificata l'ultima dimensione.
nomevar
Nome della variabile. Segue le convenzioni di denominazione standard delle variabili.
indici
Dimensioni di una variabile matrice; è possibile dichiarare un massimo di 60 dimensioni multiple. La sintassi dell'argomento indici è la seguente:
limitesuperiore[,limitesuperiore] . . .
Il limite inferiore di una matrice è sempre zero.
Osservazioni
L'istruzione ReDim consente di impostare le dimensioni o ridimensionare una matrice dinamica già dichiarata formalmente utilizzando un'istruzione Private, Public o Dim con parentesi vuote (senza indici di dimensioni). È possibile modificare il numero di elementi e dimensioni di una matrice utilizzando più volte l'istruzione ReDim.
Se si specifica la parola chiave Preserve, è possibile ridimensionare solo l'ultima dimensione della matrice. Il numero di dimensioni invece non può essere modificato. Le matrici con una sola dimensione possono, ad esempio, essere ridimensionate in quanto l'unica dimensione disponibile è anche l'ultima. Nelle matrici con due o più dimensioni è invece possibile ridimensionare solo l'ultima dimensione, senza tuttavia alterare il contenuto della matrice.
Nell'esempio seguente viene illustrato come aumentare l'ultima dimensione di una matrice dinamica senza cancellare i dati esistenti.
ReDim X(10, 10, 10)
. . .
ReDim Preserve X(10, 10, 15)
Attenzione Se le dimensioni di una matrice vengono diminuite, i dati contenuti negli elementi eliminati andranno perduti.
Le variabili numeriche sono inizializzate su 0, mentre le variabili stringa sono inizializzate su una stringa di lunghezza zero (""). Per potere utilizzare le variabili che fanno riferimento a un oggetto, è prima necessario assegnare a tali variabili un oggetto esistente utilizzando l'istruzione Set. Fino al momento dell'assegnazione di un oggetto, il valore della variabile oggetto dichiarata è inizialmente impostato su Nothing.
:master:
Ma è possibile sapere se l'array è un prova(x,y) o un prova(x,y,z)?
Io lo so perchè leggo il codice, ma runtime è possibile saperlo?
AFAIK, non c'è modo... l'unica e' farsi una funzione con una OnError, che va avanti a cercare UBound (o LBound) finché non va in errore...
ok... grazie...