none
Gerar Caracteres e Números Aleatoriamente (tipo sopa de letras)

    Pergunta

  • Olá pessoal já vi diversos posts aqui no forum que falam do uso do Random com o Rnd mas só para gerar aleatoriamente números randômicos

    O que eu gostaria de saber é, baseado no random como se poderia fz gerar aleatoriamente Caracteres (A-Z),(a-z)  + Números(0,999) mas que o resultado mostrado aleatoriamente fosse tipo

    A0XV9ZK0 (tipo captcha mas apenas em texto com o random)

    Alguem poderia me ajudar como se faria isso em asp.net Csharp

    Estou trabalhando com VS2005, CSharp Asp.Net

    Fico no aguardo e desde já agradeço
    LADEF
    sexta-feira, 27 de março de 2009 03:18

Respostas

  • Ok deu certo, mas como faço para que o valor retornado seja não com 8 Caracteres ou digitos mas sim 9 ou a partir de 9 caracteres + numbers ou não tem como ?

    Fico no aguardo e desde já agradeço
    LADEF
    • Marcado como Resposta LuizIta terça-feira, 31 de março de 2009 01:37
    sexta-feira, 27 de março de 2009 17:38

Todas as Respostas

  • Olá,

    Veja se lhe ajuda:

            Random rnd = new Random();  
            string valor = string.Empty;  
     
            for (int i = 0; i < 8; i++)  
            {  
                if (rnd.Next(0, 2) == 1) // Caso seja 1, sorteia letras  
                {  
                    valor += Convert.ToChar(rnd.Next(65, 91));  
                }  
                else 
                {  
                    valor += Convert.ToChar(rnd.Next(48, 58));  
                }  
                  
            }  
     
            Response.Write(valor); 

    Abraços
    Thiago J. Mônaco
    sexta-feira, 27 de março de 2009 13:17
  • Ok deu certo, mas como faço para que o valor retornado seja não com 8 Caracteres ou digitos mas sim 9 ou a partir de 9 caracteres + numbers ou não tem como ?

    Fico no aguardo e desde já agradeço
    LADEF
    • Marcado como Resposta LuizIta terça-feira, 31 de março de 2009 01:37
    sexta-feira, 27 de março de 2009 17:38
  • LADEF,

    Basta vc alterar a estrutura de repetição e adequar a sua necessidade...
    Se observar no exemplo que eu coloquei, quem controla a qtd de caracteres gerados é o "for".

    O segredo todo da geração aleatória, são as seguintes linhas:
    1             if (rnd.Next(0, 2) == 1) // Caso seja 1, sorteia letras     
    2             {     
    3                 valor += Convert.ToChar(rnd.Next(65, 91));     
    4             }     
    5             else    
    6             {     
    7                 valor += Convert.ToChar(rnd.Next(48, 58));     
    8             }   
    9  

    O resto é só adequar a sua necessidade.

    Abraços
    Thiago J. Mônaco
    sexta-feira, 27 de março de 2009 19:01