Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Vinxi
    Registrato dal
    Jan 2002
    Messaggi
    61

    [VB] Ridimensionamento array..è_é

    Salve ragazzi, ho un piccolo intoppo con l'uso degli array.. In pratica mi
    servirebbe riempire un vettore ridimensionandolo di volta in volta in modo
    tale che la sua grandezza sia uguale al numero degli elementi contenuti. Vi
    posto il mio codice..

    Dim grandezza() as variant
    ReDim Preserve grandezza(UBound(grandezza) + UBound(size))
    i = 0
    While i < UBound(size)
    grandezza(UBound(grandezza) + 1) = size(i)
    i = i + 1
    Wend

    Grandezza è il vettore in questione.. Size è il vettore contenente i dati da
    copiare in grandezza.
    Questo codice mi genera l'errore "Subscript out of range"..perchè? Grazie
    per le eventuali risposte!

  2. #2

    Re: [VB] Ridimensionamento array..è_é

    [supersaibal]Originariamente inviato da Vinxi

    grandezza(UBound(grandezza) + 1) = size(i)


    [/supersaibal]
    questa riga cerca di mettere dentro a Grandezza un valore nella posizione Max + 1... l'errore dovrebbe essere qui

  3. #3
    Utente di HTML.it L'avatar di Vinxi
    Registrato dal
    Jan 2002
    Messaggi
    61
    Il fatto è che l'errore mi arriva già sulla riga
    ReDim Preserve grandezza(UBound(grandezza) + UBound(size))

  4. #4

    Re: [VB] Ridimensionamento array..è_é

    Allora, devi spostare nel ciclo l'istruzione che ridimensiona il tuo array.

    codice:
    Dim grandezza() as  variant
    
    ReDim grandezza(0)
    i = 0
    While i < UBound(size)
        
        grandezza(UBound(grandezza) - 1) = size(i)
        i = i + 1
    
        ReDim Preserve grandezza(UBound(grandezza) + 1)
    
    Wend
    Così dovrebbe andare.


    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    271
    Il problema sta qui:

    Dim grandezza() as variant
    ReDim Preserve grandezza(UBound(grandezza) + UBound(size))

    L'array grandezza l'hai appenda dichiarato senza dimensioni quindi eseguendo l'UBOUND su un array senza alcuna dimensione si genera un errore!

    Spero di essere stato chiaro

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 © 2024 vBulletin Solutions, Inc. All rights reserved.