Condividi:        

vb.net dimensionare array bidimensionali

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Anthony47, Triumph Of Steel, archimede

vb.net dimensionare array bidimensionali

Postdi karug64 » 23/09/16 21:20

Salve a tutti.

Sto cercando di imparare Vb.net.
In un modulo dichiaro:

Codice: Seleziona tutto
Public schema(13, 23) As String


poi vorrei ridimensionarlo in base ai valori di due textbox digitati dall'utente

ho scritto:

Codice: Seleziona tutto
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim x, y As Integer
        x = Integer.Parse(righe.Text)
        y = Integer.Parse(colonne.Text)
        ReDim Preserve schema(x, y)
    End Sub


Ma ho errore che mi dice che Redim può modificare solo la prima dimensione a destra (quindi solo y)

Come si fa per dimensionare un array bidimensionale al volo ?

Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Sponsor
 

Postdi Anthony47 » 24/09/16 00:35

Ma a te serve il Preserve? Cioe' mantenere il contenuto attuale dell'array?
Avatar utente
Anthony47
Moderatore
 
Post: 19215
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi karug64 » 24/09/16 06:57

Si, serve ....
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Postdi Anthony47 » 24/09/16 16:52

Redim Preserve, per "impostazione di fabbrica", puo' manipolare solo l'ultima dimensione; devi quindi trovare altri trucchi per fare quello che devi ottenere.
Ad esempio:
-tieni conto delle nuove dimensioni solo quando vai a utilizzare i tuoi dati (solo se le nuove dimensioni non sono maggiori delle precedenti)
-crei un nuovo Array delle dimensioni volute, vi passi il contenuto di schema (per le righe/colonne disponibili, ma tenendo conto del nuovo limite impostato); a questo punto puoi continuare a usare il contenuto del nuovo array, oppure (per non modificare il codice successivo), ridimensioni "schema" (senza Preserve) e vi passi il contenuto del nuovo array.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19215
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi karug64 » 24/09/16 23:56

Ok. Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Postdi hydra » 29/09/16 07:58

Dai un occhio ad arraylist o list. Sono oggetti dinamici, quindi se aggiungi o togli oggetti ne modifichi automaticamente le dimensioni. C'è da smanettare un po' per creare una matrice (tipo creare una lista di liste) visto che sono monodimensionali, ma molto più flessibili se hai un array di cui le dimensioni non sono note.
Avatar utente
hydra
Moderatore
 
Post: 7007
Iscritto il: 19/07/04 08:06
Località: Vallis Duplavis


Torna a Programmazione


Topic correlati a "vb.net dimensionare array bidimensionali":


Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti