Visualizzazione dei risultati da 1 a 8 su 8

Visualizzazione discussione

  1. #7
    Quote Originariamente inviata da optime Visualizza il messaggio
    è sbagliato il ciclo di caricamento - controlla l'indice

    grazie, corretto, in ogni caso, l'errore stranamente rimane quello..

    codice:
    n = Val(InputBox("Inserisci il numero delle città da caricare:", "Caricamento dati"))
    
    
            ReDim nameCityList(n), temperatureCityList(n), populationCityList(n)
    
    
            For Me.i = 0 To n - 1
                nameCity = InputBox("Inserisci il nome della città:", "Caricamento dati")
                nameCityList(i) = nameCity
    
    
                temperatureCity = Val(InputBox("Inserisci la temperatura minima della città alle ore 23:00", "Caricamento dati"))
                temperatureCityList(i) = temperatureCity
    
    
                populationCity = Val(InputBox("Inserisci la popolazione della città:", "Caricamento dati"))
                populationCityList(i) = populationCity
            Next
    Ho eseguito un ulteriore test e ho stampato a video con un ciclo for tutte le temperature presenti:
    codice:
    For Me.i = 0 To (temperatureCityList.Count - 1)
                    lstVisualizza.Items.Add(temperatureCityList(i))
                Next
    se io nella fase di caricamento inserisco solo 1 città, mi da 2 valori, se ne inserisco 2, me ne da 3.. è come se caricasse nel vettore un dato in più con valore 0, quindi, se ad esempio inserisco 2 valori:
    Città: 1
    Temperatura: 1
    Popolazione: 1

    -

    Città: 2
    Temperatura: 2
    Popolazione: 2

    Quello che mi aspetto di vedere è questo:
    1
    2

    Mentre quello che effettivamente stampa è questo:
    1
    2
    0

    Perchè? Grazie anticipatamente


    Ho risolto tutto sistemando questa semplice riga:
    ReDim nameCityList(n - 1), temperatureCityList(n - 1), populationCityList(n - 1)

    Anche se, sinceramente, non vedo il motivo di una cosa del genere..
    Se n = 2 (2 dati da inserire), io di fatto, con il ReDim, non sto indicando QUANTI dati inserire? Non sto dando un indice massimo, solo la lunghezza del vettore. Quindi, che senso ha, se n = 2, ReDim variabile(1)?

    Probabilmente funziona indicandolo come n-1 perchè, di fatto, viene inizializzato il valore fino a indice indicato quindi:
    variabile(0)
    variabile(1)
    variabile(2)
    se n = 2..

    mentre se n = 1
    variabile(0)
    variabile(1)

    che effettivamente è sbagliato.
    mentre se n = 2 ma variabile(n-1)
    variabile(0)
    variabile(1)

    ed è corretto.. ringrazio anticipatamente tutti.
    Immagini allegate Immagini allegate
    Ultima modifica di RuggeriExtreme; 05-10-2013 a 11:48

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.