Título: Reordernar array de strings aleatoriamente (Ayuda)
Publicado por: katanaia en 25 Noviembre 2008, 18:11 pm
Necesito una funcion para reordenar o mezclar al azar un array de strings.
O sea, que de un array con los elementos ordenados: "paco", "42", "35", "gato" luego de pasarle la funcion pueda quedar algo como: "35", "paco", "gato", "42"
Alguien me puede ayudar?
Título: Re: Reordernar array de strings aleatoriamente (Ayuda)
Publicado por: Jedaias en 25 Noviembre 2008, 19:05 pm
Se me ocurre algo como esto: Variables Globales Dim cadena1(3) as string Dim cadena2(3) as string
Declaracion de la cadena1 cadena1(0) = "paco" cadena1(1) = "42" cadena1(2) = "35" cadena1(3) = "gato"
Procedimiento que reordena aleatoriamente la cadena1 y la guarda en cadena2 Dim Bandera As Boolean Dim vNum As Integer Randomize cadena2(0) = "" cadena2(1) = "" cadena2(2) = "" cadena2(3) = "" For x = 0 To 3 Bandera = True Do While Bandera vNum = Int(Rnd * 4) If cadena2(vNum) = "" Then cadena2(vNum) = cadena1(x) Bandera = False End If Loop Next
Título: Re: Reordernar array de strings aleatoriamente (Ayuda)
Publicado por: cobein en 25 Noviembre 2008, 19:27 pm
Option Explicit
Private Sub Form_Load() Dim i As Long Dim svData() As String ReDim svData(25) For i = 0 To UBound(svData) svData(i) = i Next MixUp svData For i = 0 To UBound(svData) Debug.Print svData(i) Next End Sub
Private Sub MixUp(svData() As String) Dim sTemp As String Dim lIndex As Long Dim lIndex1 As Long Dim i As Long Randomize Timer For i = 0 To UBound(svData) * 5 lIndex = Rnd * UBound(svData) lIndex1 = Rnd * UBound(svData) sTemp = svData(lIndex): svData(lIndex) = svData(lIndex1): svData(lIndex1) = sTemp Next End Sub
|