Singolo Array In Array Multipli

di il
4 risposte

Singolo Array In Array Multipli

Ciao a tutti, come da titolo sto cercando da ore una soluzione ad un problema riguardante lo split di un array in array multipli.
Ecco un esempio semplificato del mio codice:

Dim MainStr As String
Dim Str(5) As String
Dim Values() As String
Dim Time() As String

MainStr = "00012 01000 00024 02000 00090 03000"

Str = MainStr.Split(" "c)

Str(0) = "00012"   '0.012 Mm
Str(1) = "01000"   '1 Second

Str(2) = "00100"   '0.100 Mm
Str(3) = "02000"   '2 Seconds

Str(4) = "00090"   '0.090 Mm
Str(5) = "03000"   '3 Seconds
Ora che ho la mia MainString separata nell'array Str(), ho bisogno di separare nuovamente
l'array in altri due array per necessità di calcolo da fare successivamente.
Questo è quello che vorrei ottenere:

Values(0) = Str(0)
Values(1) = Str(2)
Values(2) = Str(4)

Time(0) = Str(1)
Time(1) = Str(3)
Time(2) = Str(5)
Il problema cruciale è il fatto che queste operazioni di assegnazione devono essere svolte per 260 valori e quindi sto cercando un metodo per poter eseguire l'assegnazione automatica con un ciclo for.
Questo è quello che stavo provando, senza successo: ( nel caso reale, non nell'esempio, altrimenti non sarebbe To 260 )

For i As Integer = 0 To 260 Step 2
	Values = Str(i+1)
	Time = Str(i)
	Listbox1.Items.Add(Str(i+1))
	Listbox2.Items.Add(Str(i))
Next
Step 2* L'ho usato per assegnare i valori differenziando indice dispari e pari.
In questo caso ottengo negli array Values e Time solo l'ultimo valore di Str pur essendo Values e Time degli array.
Il fatto è che ogni volta che viene assegnato il valore non viene poi salvato all'assegnazione successiva.
I listbox li sto usando per vedere effettivamente se i dati sono corretti.
Spero sia stato chiaro, è una domanda un po complessa ma credo di facile risoluzione per chi è più esperto.
Attendo risposte, grazie.

4 Risposte

  • Re: Singolo Array In Array Multipli

    Xandrew22 ha scritto:


    Questo è quello che stavo provando, senza successo: ( nel caso reale, non nell'esempio, altrimenti non sarebbe To 260 )
    
    For i As Integer = 0 To 260 Step 2
    	Values = Str(i+1)
    	Time = Str(i)
    	Listbox1.Items.Add(Str(i+1))
    	Listbox2.Items.Add(Str(i))
    Next
    
    In questo caso ottengo negli array Values e Time solo l'ultimo valore di Str pur essendo Values e Time degli array.
    Stai ponendo degli array uguali a un elemento di un altro array, è giusto che sia così.
    
    Dim Str(5) As String
    Dim Values(2) As String
    Dim Time(2) As String
    
    For i As Integer = 0 To 2 
    	Values(i) = Str(2*i)
    	Time(i) = Str(2*i+1)
    Next
    
  • Re: Singolo Array In Array Multipli

    Ok, avevo già provato così ma non funzionava ugualmente.
    Ottengo sempre questo errore:
    Riferimento a un oggetto non impostato su un'istanza di oggetto.
    Il mio codice iniziale era infatti questo:
    
    For i As Integer = 0 To 260 Step 2
    	Values(i/2) = Str(i+1)
    	Time(i/2) = Str(i)
    	Listbox1.Items.Add(Str(i+1))
    	Listbox2.Items.Add(Str(i))
    Next
    
    EDIT: HO RISOLTO, GRAZIE MILLE, IL MIO ERRORE E' STATO QUELLO DI NON ASSEGNARE UN NUMERO NELLA DICHIARAZIONE DELL'ARRAY A MONTE DEL PROGRAMMA.
    Grazie Weierstrass, non me ne ero accorto all'inizio di quella modifica.
  • Re: Singolo Array In Array Multipli

    Xandrew22 ha scritto:


    Ok, avevo già provato così ma non funzionava ugualmente.
    Ottengo sempre questo errore:
    Riferimento a un oggetto non impostato su un'istanza di oggetto.
    Il mio codice iniziale era infatti questo:
    
    For i As Integer = 0 To 260 Step 2
    	Values(i/2) = Str(i+1)
    	Time(i/2) = Str(i)
    	Listbox1.Items.Add(Str(i+1))
    	Listbox2.Items.Add(Str(i))
    Next
    
    Fammi sapere se capisci qualcosa Weierstrass. Grazie mille comunque nel caso.
    Ti ho già risposto, se non li dimensioni gli array prima di passargli i valori...

    Comunque hai invertito tempo e misure

    Ciao
  • Re: Singolo Array In Array Multipli

    Weierstrass ha scritto:


    Xandrew22 ha scritto:


    Ok, avevo già provato così ma non funzionava ugualmente.
    Ottengo sempre questo errore:
    Riferimento a un oggetto non impostato su un'istanza di oggetto.
    Il mio codice iniziale era infatti questo:
    
    For i As Integer = 0 To 260 Step 2
    	Values(i/2) = Str(i+1)
    	Time(i/2) = Str(i)
    	Listbox1.Items.Add(Str(i+1))
    	Listbox2.Items.Add(Str(i))
    Next
    
    Fammi sapere se capisci qualcosa Weierstrass. Grazie mille comunque nel caso.
    Ti ho già risposto, se non li dimensioni gli array prima di passargli i valori...

    Comunque hai invertito tempo e misure

    Ciao
    Ecco appunto non me ne ero reso conto, grazie ancora, buona giornata.
Devi accedere o registrarti per scrivere nel forum
4 risposte