none
como gerar aleatoriamente em seqüencias de 5 dígitos ( A-B-C-D-E ) VB.NET

    Frage

  • como gerar aleatoriamente em seqüencias de 5 dígitos ( A-B-C-D-E ) sem repeti-las ?

    Exemplo:

    podendo ser repetida na mesma linda.

    A-B-C-D-E

    E-C-B-B-Z

    C-C-E-A-B

    Desde já agradeço: Jcandido

    Samstag, 3. Juli 2010 18:55

Antworten

  • Jcandido,

    Consegui melhorar um pouco o código:

     

    Public Class Form1
      Function GetRandomPassword(ByVal length As Integer) As String
        Static rand As New Random
        Dim password As New System.Text.StringBuilder(length)
        For i As Integer = 1 To length
          Dim charIndex As Integer
          'Escolher quais letras ou dígitos serão usados na sequência
          Do
            charIndex = rand.Next(64, 70)
            'os números 65 e 69 abaixo correspondem ao index da letra no Enum Keys,
            'isso quer dizer que só serão usadas as letras A B C D E no sequência
          Loop Until (charIndex >= 65 AndAlso charIndex <= 69)
          ' Adicionar o caractere aleatório ao String Builder
          password.Append(Convert.ToChar(charIndex))
        Next
        Return password.ToString().ToUpper
      End Function
    
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ListBox1.Items.Add(GetRandomPassword(5))
      End Sub
    End Class

    Pelo que observei desta vez fiucou como você pediu.Quanquer problema só postar"   ^_^

     

    • Als Antwort markiert Jcandido Sonntag, 4. Juli 2010 14:48
    Sonntag, 4. Juli 2010 14:43

Alle Antworten

  • Olá Jcandico,

    Isso aí que você perguntou é bem complicado de se fazer. O Máximo que consegui foi isto:

    Public Class Form1
      Function GetRandomPassword(ByVal length As Integer) As String
        Static rand As New Random
        Dim password As New System.Text.StringBuilder(length)
        For i As Integer = 1 To length
          Dim charIndex As Integer
          ' allow only digits and letters 
          Do
            charIndex = rand.Next(57, 123)
          Loop Until (charIndex _
          >= 65 AndAlso charIndex <= 90) OrElse (charIndex >= 97 AndAlso _
          charIndex <= 122)
          ' add the random char to the password being built 
          password.Append(Convert.ToChar(charIndex))
        Next
        Return password.ToString().ToUpper
      End Function
    
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ListBox1.Items.Add(GetRandomPassword(5))
      End Sub
    End Class
    Acho que já irá te ajudar um pouco.
    Sonntag, 4. Juli 2010 11:00
  • Olá Herbert

    Muito obrigado pela ajuda!

    esse codigo me foi muito util!

    porém ainda fico na pendência da seqüencia entre A-B-C-D-E. ^^

     

     

     

    "Não sabia que era impossível, fui la e fiz"

    Sonntag, 4. Juli 2010 13:48
  • Jcandido,

    Consegui melhorar um pouco o código:

     

    Public Class Form1
      Function GetRandomPassword(ByVal length As Integer) As String
        Static rand As New Random
        Dim password As New System.Text.StringBuilder(length)
        For i As Integer = 1 To length
          Dim charIndex As Integer
          'Escolher quais letras ou dígitos serão usados na sequência
          Do
            charIndex = rand.Next(64, 70)
            'os números 65 e 69 abaixo correspondem ao index da letra no Enum Keys,
            'isso quer dizer que só serão usadas as letras A B C D E no sequência
          Loop Until (charIndex >= 65 AndAlso charIndex <= 69)
          ' Adicionar o caractere aleatório ao String Builder
          password.Append(Convert.ToChar(charIndex))
        Next
        Return password.ToString().ToUpper
      End Function
    
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ListBox1.Items.Add(GetRandomPassword(5))
      End Sub
    End Class

    Pelo que observei desta vez fiucou como você pediu.Quanquer problema só postar"   ^_^

     

    • Als Antwort markiert Jcandido Sonntag, 4. Juli 2010 14:48
    Sonntag, 4. Juli 2010 14:43
  • Cara muito obrigadoooooooooooooooooooooooo.... amu-TU ^^

     

    Sonntag, 4. Juli 2010 14:48
  • Por nada,gosto de ajudar os colegas ^_^
    Sonntag, 4. Juli 2010 14:53