Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - randomizzare elementi array
Forum - Visual Basic 6 - randomizzare elementi array

Avatar
iGuLy (Ex-Member)
Pro


Messaggi: 66
Iscritto: 17/05/2007

Segnala al moderatore
Postato alle 20:59
Mercoledì, 19/09/2007
Volevo chiedere se qualcuno mi può spiegare come randomizzare gli elementi di una array e poi farli visualizzare in una label.
La grandezza e gli elementi dell'array vengono definiti dall'utente.
Spero di essere stato chiaro.

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 21:31
Mercoledì, 19/09/2007
Puoi usare semplicemente la funzione Rnd ...

Di che tipo di array parli?

Dai maggiori dettagli ...

PM Quote
Avatar
iGuLy (Ex-Member)
Pro


Messaggi: 66
Iscritto: 17/05/2007

Segnala al moderatore
Postato alle 17:35
Giovedì, 20/09/2007
Io ho una textbox e il valore della textbox viene preso carattere per carattere e inserito nell'array.
Adesso io voglio randomizzare gli elementi di questo array(in questo caso i caratteri della textbox), e poi farli visualizzare in una label.

PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 17:52
Giovedì, 20/09/2007
Se ho capito, tu vuoi vedere in una label i singoli caratteri che hai messo nella textbox in maniera casuale giusto?
Penso che questo codice andra bene...
Aggiungi un timer, un bottone, una label e una textbox al form.
Codice sorgente - presumibilmente VB.NET

  1. Dim c(100) As String
  2. Dim i As Integer
  3.  
  4. Private Sub Command1_Click()
  5. Timer1.Enabled = True
  6. Timer1.Interval = 1000
  7. End Sub
  8.  
  9. Private Sub Form_Load()
  10. i = - 1
  11.  
  12. Timer1.Enabled = False
  13. End Sub
  14.  
  15. Private Sub Text1_Change()
  16. i = i + 1
  17. c(i) = Right(Text1.Text, (Len(Text1.Text) - (Len(Text1.Text) - 1)))
  18. End Sub
  19.  
  20. Private Sub Timer1_Timer()
  21. Dim d As Integer
  22. Randomize
  23. d = Int((i - 0 + 1) * Rnd + 0)
  24. Label1.Caption = c(d)
  25. End Sub


Spero di esserti stato di aiuto,
ciao.

Ultima modifica effettuata da LuigiBiasi il 20/09/2007 alle 18:08
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 17:57
Giovedì, 20/09/2007
Praticamente vuoi visualizzare il contenuto della textbox "mischiato"?

Esempio, se nella textbox c'e'

ABCDE

vuoi visualizzare qualcosa come

DCEAB

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 18:10
Giovedì, 20/09/2007
Qualcosa del genere

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Command1_Click()
  2.     Dim C() As Byte
  3.     Dim L As Long
  4.     Dim K As Long
  5.     Dim Ix1 As Long, Ix2 As Long
  6.     Dim T As Byte
  7.    
  8.     Randomize Timer
  9.    
  10.     L = Len(Text1.Text)
  11.     ReDim C(0 To L - 1)
  12.     C = StrConv(Text1.Text, vbFromUnicode)
  13.    
  14.     For K = 1 To L * 2
  15.         Ix1 = Int(Rnd * L)
  16.         Ix2 = Int(Rnd * L)
  17.         T = C(Ix1)
  18.         C(Ix1) = C(Ix2)
  19.         C(Ix2) = T
  20.     Next K
  21.    
  22.     Label1.Caption = StrConv(C, vbUnicode)
  23. End Sub



@LuigiBiase
Scusami, ma molti punti del tuo codice non sono chiari ... e mi sembra che non vada ...

PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 18:36
Giovedì, 20/09/2007
Ho capito male io.
Io ho capito che volesse visualizzare singolarmente i caratteri nella label, scritti prima nella text,  a casaccio e non pensavo che volesse fare delle combinazioni con quei caratteri.
Scusate.

Ultima modifica effettuata da LuigiBiasi il 20/09/2007 alle 18:40
PM Quote
Avatar
iGuLy (Ex-Member)
Pro


Messaggi: 66
Iscritto: 17/05/2007

Segnala al moderatore
Postato alle 19:37
Giovedì, 20/09/2007
Grazie a tutti e due, ma credo che ha me serva più il codice di gantonio.
Grazie

PM Quote