Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    incremento dimensione array

    se non so quanti elementi devo mettere nell'array, il quale viene caricato con un ciclo for, cosa ne dite se nel ciclo ad ogni passaggio ridimensione l'array aumentando di 1 la dimensione?
    henry

  2. #2
    codice:
    x=10
    for i=0 to X-1 
    
    redim preserve mioArray(i)
    mioArray(i)=i+1 'faccio un array con i numeri da 1 a 10
    next
    
    for i=0 to ubound(mioArray)
    response.write mioArray(i)
    next
    se proprio non sai quanto deve essere grande l'array...

  3. #3
    in realtà non chiedevo il codice ma solo un consiglio se era il metodo migliore o se appesantisce la procedura...

    ma già che l'hai scritto ti chiedo:

    - a cosa serve "preserve" ?

    - non è + corretto "for i=0 to (Ubound(mioarray)-1)

    grazie
    ciao
    henry

  4. #4
    preserve preserva, ovvio. senza preserve non si preserva, altrettanto ovvio.

  5. #5

  6. #6
    in pratica preserve conserva i dati che hai nell'array quando lo ridimensioni. Ubound restituisce l'ultimo elemento dell'array quindi mi sembra una cosa inutile (anche se non capisco perchè funzionino tutti e due i codici)

    cmq appesantisce molto meno del recordset...diciamo che gli array sono molto digeribili

    questa la documentazione del redim:

    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.

  7. #7
    a me pare che ubound non dia l'indice dell'ultimo elemento ma che invece conta il numero degli elementi, compreso quello con indice 0...
    henry

  8. #8
    Funzione UBound
    Restituisce il limite superiore della dimensione specificata di una matrice.

    UBound(nomematrice[, dimensione])

    Argomenti
    nomematrice

    Obbligatorio. Nome della variabile matrice espresso in base alle convenzioni di denominazione standard per le variabili.

    dimensione

    Facoltativo. Numero intero che indica il limite superiore della dimensione restituito. Per la prima dimensione è necessario specificare 1, per la seconda 2 e così via. Se si omette l'argomento dimensione, viene automaticamente impostato 1.

    Osservazioni
    La funzione UBound viene utilizzata insieme alla funzione LBound per identificare le dimensioni di una matrice. La funzione LBound consente di trovare il limite inferiore di una dimensione di matrice.

    Il limite inferiore predefinito di una dimensione è sempre uguale a 0. Di conseguenza, specificando le seguenti dimensioni, la funzione UBound restituisce i valori elencati nella tabella riportata di seguito.

    Dim A(100,3,4)
    Istruzione Valore restituito
    UBound(A, 1) 100
    UBound(A, 2) 3
    UBound(A, 3) 4

  9. #9
    sempre sulle dimensioni degli array, mi domando:

    perchè non funziona (dice che vuol un n integer...)

    n=10
    dim mio_array(3,n)

    ma invece funziona (senza dichiarazioni precedenti)

    n=10
    redim mio_array(3,n)

    ???
    henry

  10. #10

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.