none
Crear números aleatorios pero que no se repitan. RRS feed

  • Pregunta

  • Buenos días a todos.

    Me han encargado hacer un turno de espera como cuando se va al medico y te dan un ticket que luego sale en una pantalla cuando te llaman,pues lo mismo.

    Tengo que crear esos ticket con números aleatorios, por ejemplo:

    A-145

    B-123

    C-89

    ¿Como puedo crear dichos números aleatorios sin que se repitan?, es decir que el A-145 no vuelva a sacrmelo.

    1000 gracias.

    miércoles, 4 de septiembre de 2019 8:53

Respuestas

  • Tienes crearte una función que te genere ese número y a la vez vaya guardando los números que genera para comprobar que no coincida con ninguno de los generados anteriormente.

    Algo como esto:

    Private Function GeneraNumeroSinRepetir() As String
    
        Static ListaDeNumerosGenerados As New List(Of String)
    
        Dim Letra As String = ""
        Dim Numero As String = ""
        Dim NumeroGenerado As String = ""
    
        Do
    
            Letra = Chr(Asc("A") + (Rnd() * 26))
            Numero = Int(Rnd() * 999)
    
            NumeroGenerado = Letra & "-" & Numero
    
        Loop Until Not ListaDeNumerosGenerados.Contains(NumeroGenerado)
    
        Return NumeroGenerado
    
    End Function

    Solo tienes que llamar a la función para que te devuelva el número.



    Saludos, Javier J

    • Marcado como respuesta Juan Martinez F miércoles, 4 de septiembre de 2019 10:33
    miércoles, 4 de septiembre de 2019 9:41

Todas las respuestas

  • Tienes crearte una función que te genere ese número y a la vez vaya guardando los números que genera para comprobar que no coincida con ninguno de los generados anteriormente.

    Algo como esto:

    Private Function GeneraNumeroSinRepetir() As String
    
        Static ListaDeNumerosGenerados As New List(Of String)
    
        Dim Letra As String = ""
        Dim Numero As String = ""
        Dim NumeroGenerado As String = ""
    
        Do
    
            Letra = Chr(Asc("A") + (Rnd() * 26))
            Numero = Int(Rnd() * 999)
    
            NumeroGenerado = Letra & "-" & Numero
    
        Loop Until Not ListaDeNumerosGenerados.Contains(NumeroGenerado)
    
        Return NumeroGenerado
    
    End Function

    Solo tienes que llamar a la función para que te devuelva el número.



    Saludos, Javier J

    • Marcado como respuesta Juan Martinez F miércoles, 4 de septiembre de 2019 10:33
    miércoles, 4 de septiembre de 2019 9:41
  • Muchas gracias Javier
    miércoles, 4 de septiembre de 2019 10:33