Gerar Caracteres e Números Aleatoriamente (tipo sopa de letras)
-
sexta-feira, 27 de março de 2009 03:18Olá 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
Todas as Respostas
-
sexta-feira, 27 de março de 2009 13:17Moderador
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 17:38
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 19:01Moderador
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

