Problema con generador de numeros

Iniciado por bautistasbr, 11 Julio 2006, 09:37 AM

0 Miembros y 1 Visitante están viendo este tema.

bautistasbr

Estoy haciendo un generador de numeros y letras para q salgan al hazar.Las a puesto un timer para q se generen solos,pero el problema es q siempre genera los mismos.Mi codigo es este

Private Sub Command1_Click()
With Text1
.Text = "": .Tag = 1
While .Tag <= 14
.Text = .Text & Int((9 * Rnd) + 1) ' Genera un valor aleatorioentre el 1 y el 9
.Tag = .Tag + 1
Wend
End With

End Sub

Private Sub Timer1_Timer()
Call Command1_Click     'interval 20'
End Sub

Private Sub Timer2_Timer()
Timer1.Enabled = False
Timer2.Enabled = False  'interval 5000'
End Sub

como puedo hacer para q no me genere siempre los mismos numeros?? Como puedo añadirle letras?

Gracias

BenRu

#1
El de los numeros es muy simple...para hacer el de letras puedes hacer dos cosas:
1. Hacer un case incluyendo todas las letras que quieras
2. Pasar el ejemplo que te voy a poner, en vez de salirte el numero, que te salga como ascii "equivalencia"

Te pondre la primera...si te interesa la segunda, me lo dices y te lo  codeo.


'Numeros y letras aleatorias by BenRu


Private Sub Command1_Click()
    Dim Num As Byte
    Num = Int(255 - 1) * Rnd + 0
    Text1.Text = Num
End Sub

Private Sub Command2_Click()
Dim AlgorritmoLetra As Integer
Dim AlgorritmoLetra2 As String

    AlgorritmoLetra = Int((4 * Rnd) + 1) 'Cambia el 4 por el numero de Case que vallas a poner
   
    Select Case AlgorritmoLetra
        Case 1
            AlgorritmoLetra2 = "a"
        Case 2
            AlgorritmoLetra2 = "b"
        Case 3
            AlgorritmoLetra2 = "c"
        Case 4
            AlgorritmoLetra2 = "d"
        End Select
Text2.Text = AlgorritmoLetra2
End Sub

Private Sub Form_Load()
Randomize
End Sub


bautistasbr

me gusta el code,pero no hay una forma de unir los numeros con las letras en  el mismo textbox??

otra cosa.Hay alguna posibilidad de q se repitan las cadenas generadas?
porq no quiero q se repitan

BenRu

Cita de: bautistasbr en 11 Julio 2006, 10:39 AM
me gusta el code,pero no hay una forma de unir los numeros con las letras en  el mismo textbox??

Donde estan los Case tambien puedes meter numeros, signos o lo que quieras.

Citarotra cosa.Hay alguna posibilidad de q se repitan las cadenas generadas?

Si, simplemente son numeros aleatorios

bautistasbr

no hay alguna forma para q salgan todas a la vez pero tambien con orden aleatorio?

soplo

Hola
Como tú entenderás para obtener números aleatorios no se hace "magia". Hay un algoritmo que calcula los números.

Ese algoritmo calcula los números basándose en algo. Si parte de la misma base obtiene los mismos números. Por eso debes decir que para hacer el algoritmo parta de algo diferente cada vez.

La base numérica que se utiliza para partir el algoritmo se cambia con la orden randomize.
randomize (numero)

Si cambias de número cambias de valores. Con el mismo número siempre los mismos valores.

Por eso la costumbre suele ser partir del número de serie de la fecha o cualquier cosa semejante
randomize now
por ejemplo para que parta con el número correspondiente a la fecha/hora actual.

;D
Callar es asentir ¡No te dejes llevar!

bautistasbr

os doy las gracias a todos por vuestros consejos.Me sirven de gran ayuda

Gracias