PDA

View Full Version : ایجاد رشته Random



jaykob
پنج شنبه 28 بهمن 1389, 20:06 عصر
سلام

من با استفاده از کلاس Random یک عدد تصادفی ایجاد می کنم اما حالا می خوام یک رشته اتفاقی که ترکیبی از حروف و عدد و کاراکتر ها باشه بسازم . به چه صورت می تونم این کار رو انجام بدم ؟

با تشکر

sinashahab
پنج شنبه 28 بهمن 1389, 20:52 عصر
یه راه ساده اینه که یه کلاس بنویسی و بزاری از 1 تا 50 رو بگیره و یه کاراکتر پس بده .

مثلا اگه 26 گرفت "خ" پس بده و ......

Salar Ashgi
پنج شنبه 28 بهمن 1389, 21:20 عصر
مثال اول :


string rnd = Guid.NewGuid().ToString();
MessageBox.Show(rnd);


66494
مثال دوم :
با یک تابع دلخواهی مثل زیر :


string Random_Str(int len)
{
Random rnd = new Random();
string res="";

for(int i=1;i<=len;i++)
{
if(i%3==0)
res+=((char)(rnd.Next(48,57))).ToString();
else if(i%3==1)
res+=((char)(rnd.Next(65,90))).ToString();
else if(i%3==2)
res+=((char)(rnd.Next(97,122))).ToString();

}
return res;

}

نتیجه :


string rnd = Random_Str(10);
MessageBox.Show(rnd);


66493

البته مطمئنا روش های دیگری نیز وجود دارند و اینها بعنوان مثال نمونه بودند .

موفق باشید ./

jaykob
پنج شنبه 28 بهمن 1389, 22:43 عصر
مثال اول :


string rnd = Guid.NewGuid().ToString();
MessageBox.Show(rnd);


66494
مثال دوم :
با یک تابع دلخواهی مثل زیر :


string Random_Str(int len)
{
Random rnd = new Random();
string res="";

for(int i=1;i<=len;i++)
{
if(i%3==0)
res+=((char)(rnd.Next(48,57))).ToString();
else if(i%3==1)
res+=((char)(rnd.Next(65,90))).ToString();
else if(i%3==2)
res+=((char)(rnd.Next(97,122))).ToString();

}
return res;

}

نتیجه :


string rnd = Random_Str(10);
MessageBox.Show(rnd);


66493

البته مطمئنا روش های دیگری نیز وجود دارند و اینها بعنوان مثال نمونه بودند .

موفق باشید ./

ممنون از جوابتون اگر بخواهیم کاراکتر های مثل %$#^%$@ و امثال ابن کاراکتر ها رو هم اضافه کنیم به چه شکل می شه ؟

با تشکر

mmd2009
جمعه 29 بهمن 1389, 12:37 عصر
با سلام.

اینم یک مثال از من.

فکر کنم روشی بهتری باشه :



private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(RandomString(15));
}

private readonly Random rnd = new Random();
private const string CharForSting = "ABCDEFGHIJKLMNOPQRSTUVWXYZ@#$%^&*()_+123456789";

private string RandomString(int intsize)
{
char[] str = new char[intsize];

for (int i = 0; i < intsize; i++)
{
str[i] = CharForSting[rnd.Next(CharForSting.Length)];
}
return new string(str);
}