Hay ocasiones en las que debemos generar texto o nombres de forma aleatoria ya sea para renombrar archivos, o tal vez imágenes que nuestros usuarios suben al hosting, o simplemente identificar a un usuario o algún producto de nuestra base de datos, según sea el caso podemos aprovechar la librería Random que nos ofrece .Net, que si bien es para generar números aleatorios y nos ofrece diferentes sobrecargas o formas en las que podemos usarlo, nosotros lo utilizaremos para generar diferentes combinaciones de texto a partir de un texto dado.
Veamos un ejemplo:
Expliquemos un poco:
- Creamos la instancia del objeto Random.
- Definimos los posibles caracteres que incluirá cada nueva combinación obtenida.
- Obtenemos el numero de caracteres o la longitud de los posibles caracteres.
- Declaramos una nueva variable la cual contendrá la nueva combinación.
- Usamos el ciclo for para tomar el carácter según el método Next de la variable con los caracteres posibles y así ir obteniendo uno a la vez e ir concatenándole a la cadena de salida el nuevo carácter obtenido.
- Por ultimo obtenemos la nueva cadena y decidimos que hacer con ella.
Estos son ejemplos de combinaciones obtenidas:
FXyTq
rBNdR
9n1yR
Xe4JX
wQjnj
Esto es todo, espero que a alguien le sea de utilidad ;) .
Suscribirse a:
Enviar comentarios (Atom)
Muy bueno
ResponderEliminarMe servio mucho tu ejemplo, muchas gracias.
ResponderEliminarPor nada
EliminarMuy bueno, Gracias
ResponderEliminarMi lo que hice :D
ResponderEliminarprivate void Aleatorio() {
try
{
Random obj = new Random();
String posibles = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
int longitud = posibles.Length;
char letra;
char letra2;
char letra3;
char letra4;
int longitudnuevacadena = 5;
string nuevacadena = "";
string nuevacadena2 = "";
string nuevacadena3 = "";
string nuevacadena4 = "";
for (int i = 0; i < longitudnuevacadena; i++)
{
letra = posibles[obj.Next(longitud)];
letra2 = posibles[obj.Next(longitud)];
letra3 = posibles[obj.Next(longitud)];
letra4 = posibles[obj.Next(longitud)];
nuevacadena += letra.ToString();
nuevacadena2 += letra2.ToString();
nuevacadena3 += letra3.ToString();
nuevacadena4 += letra4.ToString();
}
String General = nuevacadena + "-" + nuevacadena2 +"-"+ nuevacadena3 +"-"+ nuevacadena4;
label1.Text = General;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message,"Error");
Funciona, que tal si fueran 30 letras o mas?
EliminarDiscúlpame Donny pero es innecesario escribir todo eso repetido, lo único que tienes que hacer es cambiar el valor de la variable longitudnuevacadena=5 poner longitudnuevacadena=30 y asunto resuelto :D, la programación se trata de facilitar las cosas :p
EliminarMuy, pero muy bueno. Gracias
ResponderEliminar#muybueno
ResponderEliminarusing System;
ResponderEliminarnamespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(randomstring(15));
Console.ReadLine();
Console.WriteLine(randomstring(20));
Console.ReadLine();
Console.WriteLine(randomstring(18));
Console.ReadLine();
}
static string randomstring(int len)
{
// Devuelve una cadena de longitud especificada con caracteres aleatorios
// de numeros, letras mayusculas y minusculas codigo ASCII.
//
Random r = new Random(DateTime.Now.Millisecond);
sbyte[] buffer = new sbyte[len];
char[] res = new char[len];
for (int i = 0; i < len; i++)
{
int s = r.Next(1, 4);
switch (s)
{
case 1:
res[i] = Convert.ToChar(r.Next(49, 57));
break;
case 2:
res[i] = Convert.ToChar(r.Next(65, 90));
break;
default:
res[i] = Convert.ToChar(r.Next(97, 122));
break;
}
}
return new String(res);
}
}
}
3
ResponderEliminarMe fue de mucha utilidad. Muchas gracias.
ResponderEliminarpublic static string GenerarCadenaAleatoria(int maxLenght)
ResponderEliminar{
try
{
var obj = new Random();
const string allowedChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
var longitud = allowedChars.Length;
var res = "";
for (int i = 0; i < maxLenght; i++)
{
res += allowedChars[obj.Next(longitud)];
}
return res;
}
catch (Exception)
{
throw new Exception("No se puede generar una cadena aleatoria");
}
}
muchas gracias ;)
ResponderEliminarxd
ResponderEliminarporfavor ayudenme con esto
ResponderEliminar(Máquina tragamonedas) Escriba una aplicación en C++ que simule una máquina tragamonedas. El jugador inicia con f fichas. El valor para f es una entrada al programa y usted cobra 25 céntimos de sol por ficha. En cada jugada, el jugador puede apostar de 1 a 4 fichas. Si el jugador ingresa 0 como el número de fichas a apostar, entonces el programa se detiene. Al final del juego, el programa muestra el número de fichas que quedan y que tanto ganó o perdió el jugador en una cantidad en soles. Existen tres ranuras en la máquina y cada una de ellas mostrará una de las tres piezas posibles: CAMPANA, UVA y CEREZA. Cuando aparezcan ciertas combinaciones en las ranuras, la máquina pagará al jugador n veces la cantidad apostada. Las combinaciones ganadoras son las siguientes:
ResponderEliminarNúmero Combinación Gana
1 CAMPANA CAMPANA CAMPANA 10
2 UVA UVA UVA 7
3 CEREZA CEREZA CEREZA 5
4 CEREZ CEREZA ----- 3
5 CEREZA ----- CEREZA 3
6 ----- CEREZA CEREZA 3
7 CEREZA ----- ----- 1
8 ----- CEREZA ----- 1
9 ----- ----- CEREZA 1
El símbolo ----- significa cualquier pieza.
Pide C++, en este blog solo se maneja C# y VB.Net
Eliminarexcelente, me sirvió de mucho....Esta Chevere!!!
ResponderEliminar