Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: zarq29 en 2 Mayo 2008, 20:20 pm



Título: Trabajar con lista aleatoriamente
Publicado por: zarq29 en 2 Mayo 2008, 20:20 pm
Hola

Soy bastante novato en VB,y necesito saber como tener una lista de cadenas (nombres precisamente) y mostrarlas de forma aleatoria...bien, paso a explicarme mejor:
Quiero crear una especie de "fixture" de un torneo, y que los grupos se den de forma aleatoria. Para eso coloque un botón "Aleatorio" con el cual busco dar valores de cadenas aleatorias a algunos Labels, pero respetando la lista de nombres que mencione anteriormente, y sin repetir en más de una ocacion esa cadena, es decir: una vez usada la cadena, no vuelve a utilizarse.

espero me hayan entendido lo que necesito

gracias de antemano, y saludos!


Título: Re: Trabajar con lista aleatoriamente
Publicado por: cassiani en 2 Mayo 2008, 20:38 pm
Usa vectores y la función RND para generar un numero entre 0 y el limite de elementos del mismo, luego seleccionas la cadena con el numero generado.

¡Saludos voy retrasado!


Título: Re: Trabajar con lista aleatoriamente
Publicado por: zarq29 en 2 Mayo 2008, 21:00 pm
si podrias ser un poco mas específico o dejarme algun ejemplo te agradeceria mucho ;)

Cita de: zarq29
soy bastante novato en VB

.................
xD

perdon las molestias :-[
saludos


Título: Re: Trabajar con lista aleatoriamente
Publicado por: naderST en 2 Mayo 2008, 21:31 pm
Bueno... yo lo haria asi:

Código:
Option Explicit

Private Sub Command1_Click()
Dim Equipos As Variant

Equipos = Array("Barcelona", "Milan", "Chelsea", "Real Madrid")

Randomize

Label1.Caption = Equipos(Int(Rnd * (UBound(Equipos) + 1)))
End Sub



Título: Re: Trabajar con lista aleatoriamente
Publicado por: Lambda en 2 Mayo 2008, 22:24 pm
Bueno... yo lo haria asi:

Código:
Option Explicit

Private Sub Command1_Click()
Dim Equipos As Variant

Equipos = Array("Barcelona", "Milan", "Chelsea", "Real Madrid")

Randomize

Label1.Caption = Equipos(Int(Rnd * (UBound(Equipos) + 1)))
End Sub


Es Dim Equipos() As variant

creo recordar o si queres un numero definido Dim Equipos(1 To 200) As Variant

hace tiempo q no programo en VB asi q no estoy seguro XD


Título: Re: Trabajar con lista aleatoriamente
Publicado por: naderST en 2 Mayo 2008, 23:09 pm
Bueno... yo lo haria asi:

Código:
Option Explicit

Private Sub Command1_Click()
Dim Equipos As Variant

Equipos = Array("Barcelona", "Milan", "Chelsea", "Real Madrid")

Randomize

Label1.Caption = Equipos(Int(Rnd * (UBound(Equipos) + 1)))
End Sub


Es Dim Equipos() As variant

creo recordar o si queres un numero definido Dim Equipos(1 To 200) As Variant

hace tiempo q no programo en VB asi q no estoy seguro XD

En este caso no es necesario poner () bueno creo yo... porque lo probe y funciono bien.


Título: Re: Trabajar con lista aleatoriamente
Publicado por: zarq29 en 3 Mayo 2008, 03:51 am
muchas gracias amigo, funciono perfecto, solo por un problema...

al presionar el command, suele pasar que me queda (por ejemplo) " Milan vs Milan "... hay alguna forma de solucionarlo?

gracias nuevamente

saludos


Título: Re: Trabajar con lista aleatoriamente
Publicado por: naderST en 3 Mayo 2008, 04:03 am
usa IF ejemplo:

if label1.caption = Label2.caption then
'GENERA OTRO
end if