|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2001
Città: Dublino
Messaggi: 878
|
[VB] Array bidimensionale
Sto provando a mettere su uno pseudo-programma per il gioco del lotto per un amico
![]() avendo uno schema di estrazioni passate del genere: Ba | Ca | Fi | Ge 1 2 3 4 5 | 1 2 3 4 5 | 1 2 3 4 5 | 1 2 3 4 5 6 7 8 9 10 | 6 7 8 9 10 | 6 7 8 9 10 | 6 7 8 9 10 11 12 13 14 15|11 12 13 14 15|11 12 13 14 15 |11 12 13 14 15 vorrei memorizzare i numeri sortiti in un array bidimensionale, all'inizio volevo usarne uno monodimensionale per l'ultima estrazione, del tipo dim Ba(4) as String While Not EOF(1) Line Input #1, estrazione For i = 0 to 4 Ba(i) = Mid$(estrazione, (1 + i * 2), 2)) e assegnare alle altre ruote i valori dopo un segno di tabulazione che avrò nel file di testo contenente le ultime estrazioni. Il fatto è che mi occorre un array a 2 dimensioni per memorizzare anche le estrazioni precedenti, ma nel libro del Balena (quello passa il convento) non ho trovato molto, e al momento non ho disponibile la MSDN. Considerando le ultime 50 estrazioni, dovrei dichiarare l'array così (credo): ReDim Ba(4, 49) as String Posso utilizzare dei contatori al posto dei numeri? ReDim Ba(a, b) as String in modo da riempire l'array con un ciclo? E' tutto quello che so e che ipotizzo degli array multidimensionali ![]() Grazie! ![]() |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: May 2003
Città: Torino
Messaggi: 63
|
La cosa dovrebbe funzionare.
prima di usare redim devi dichiarare l'array nel seguente modo: Dim Ba() as string e successivamente usi: ReDim Ba(a, b) in modo da poterlo ridimensionare dinamicamente. Ovviamente dopo che hai ridimensionato l'array puoi accedere ai suoi elementi anche attraverso variabili-contatore di cicli, come vuoi fare tu, no? ![]()
__________________
AMD K6 450 MHz, Epox MVP3G2 FSB 100 MHz, 320 MB RAM, HDD IBM 7200 60 GB, VooDoo III (è vecchia ma per diablo II va ancora bene ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Se lo vuoi aumentare in modo dinamico ma mano che hai un dato in più, nn basta mettere Redim, ma devi mettere Redim Preserve, altrimenti il vettore si rinizializza
![]() Consiglio di usare anche le funzioni: UBOUND(Vettore Dinamico) LBOUND(Vettore Dinamico) che tornano rispettivamente il massimo ed il mino indice del tuo vettore. Esempio pratico: Codice:
dim Vet() as integer dim nI as integer redim Vet(0) for nI=1 to 1000 redim preserve Vet(Ubound(Vet)+1) Vet(Ubound)=inputbox("Metti un numero") next
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:16.