PDA

View Full Version : سوال: رندوم عدد و حروف با هم



vahidbolbol
شنبه 02 دی 1396, 02:43 صبح
با سلام
ببخسید دوستان من برنامه عدد رندوم از 1000 تا 10000 نوشتم اما حالا میخوام خروجی شبیه مثلا BRC1589 بهم بده
یعنی 3 کاراکتر اول حروف A تا Z به صورت رندوم و کنارش عدد 4 رقمی رندوم چاپ کنه خیلی لازمش دارم کسی میتونه کمکم کنه
با تشکر

parvizwpf
شنبه 02 دی 1396, 08:05 صبح
private static Random random = new Random();
public static string RandomString()
{
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const string numbers = "0123456789";
var horoof = new string(Enumerable.Repeat(chars, 3)
.Select(s => s[random.Next(s.Length)]).ToArray());

var adad = new string(Enumerable.Repeat(numbers, 4)
.Select(s => s[random.Next(s.Length)]).ToArray());

return horoof + adad;
}

Hadi-Hashemi
شنبه 02 دی 1396, 12:00 عصر
string rnd_string = string.Empty;

Random rnd = new Random();

for (int i = 0; i < 3; i++)
rnd_string += (char)rnd.Next(65, 90);

rnd_string += rnd.Next(1000, 10000);

Console.WriteLine(rnd_string);

vahidbolbol
دوشنبه 04 دی 1396, 15:50 عصر
سلام دوست عزیز با تشکر از پاسخت اما خطا میداد و اجرا نمی شد
انگار { اشتباه باز شده متوجه نشدم
اینو تو محیط کنسول باید بنویسم دیگه؟

vahidbolbol
دوشنبه 04 دی 1396, 15:51 عصر
private static Random random = new Random();
public static string RandomString()
{
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const string numbers = "0123456789";
var horoof = new string(Enumerable.Repeat(chars, 3)
.Select(s => s[random.Next(s.Length)]).ToArray());

var adad = new string(Enumerable.Repeat(numbers, 4)
.Select(s => s[random.Next(s.Length)]).ToArray());

return horoof + adad;
}





سلام دوست عزیز با تشکر از پاسخت اما خطا میداد و اجرا نمی شد
انگار { اشتباه باز شده متوجه نشدم
اینو تو محیط کنسول باید بنویسم دیگه؟

vahidbolbol
دوشنبه 04 دی 1396, 15:53 عصر
string rnd_string = string.Empty;

Random rnd = new Random();

for (int i = 0; i < 3; i++)
rnd_string += (char)rnd.Next(65, 90);

rnd_string += rnd.Next(1000, 10000);

Console.WriteLine(rnd_string);




سلام دوست عزیز با تشکر از پاسخت اما نمیشه کاری کرد که وقتی یکبار اجرا شد 1000 تا واسم چاپ کنه؟کد شما فقط یکی چاپ میکنه و من اگه 1000 تا بخوام باید 1000 بار برنامه اجرا کنم

Hadi-Hashemi
دوشنبه 04 دی 1396, 16:47 عصر
سلام دوست عزیز با تشکر از پاسخت اما نمیشه کاری کرد که وقتی یکبار اجرا شد 1000 تا واسم چاپ کنه؟کد شما فقط یکی چاپ میکنه و من اگه 1000 تا بخوام باید 1000 بار برنامه اجرا کنم



سلام دوست عزیز

میشه، برای اینکار شما میتونی کد بالا رو توی یه متد بنویسی و هر کجا که لازم داشتی توی یه حلقه هر چقدر که خواستی اجراش کنی.

فقط در این صورت چون برای تولید عدد تصادفی از زمان سیستم استفاده میشه و چندتاشون ممکنه تو اون لحظه فراخوانی بشه امکان اینکه یه چند تا مثل هم باشه هست. برای همین بهتره شما یه پارامترهای دیگه هم اضافه کنی. مثلا عدد رندوم بدست اومده رو با یه عددی ضرب کنی و یا جمع کنی و یا حتی دوباره از ساعت سیستم کمک بگیری. و یا در حلقه ای که میخوای پشت سر هم چاپ کنی وقفه ایجاد کنی تا عدد بعدی توی یه زمان دیگه ای باشه.

parvizwpf
دوشنبه 04 دی 1396, 16:56 عصر
سلام دوست عزیز با تشکر از پاسخت اما خطا میداد و اجرا نمی شد
انگار { اشتباه باز شده متوجه نشدم
اینو تو محیط کنسول باید بنویسم دیگه؟
خطاش چی هست؟

vahidbolbol
دوشنبه 04 دی 1396, 18:08 عصر
خطاش چی هست؟


عکس فرستادم البته من تو فرم کد گذاشتم یعنی یم دکمه گذاشتم داخل دکمه کد نوشتم


147335

vahidbolbol
دوشنبه 04 دی 1396, 18:09 عصر
سلام دوست عزیز

میشه، برای اینکار شما میتونی کد بالا رو توی یه متد بنویسی و هر کجا که لازم داشتی توی یه حلقه هر چقدر که خواستی اجراش کنی.

فقط در این صورت چون برای تولید عدد تصادفی از زمان سیستم استفاده میشه و چندتاشون ممکنه تو اون لحظه فراخوانی بشه امکان اینکه یه چند تا مثل هم باشه هست. برای همین بهتره شما یه پارامترهای دیگه هم اضافه کنی. مثلا عدد رندوم بدست اومده رو با یه عددی ضرب کنی و یا جمع کنی و یا حتی دوباره از ساعت سیستم کمک بگیری. و یا در حلقه ای که میخوای پشت سر هم چاپ کنی وقفه ایجاد کنی تا عدد بعدی توی یه زمان دیگه ای باشه.


خیلی سخت شد تیکه کدشو ندارین؟میشه بیشتر راهنمایی کنید عزیز

parvizwpf
دوشنبه 04 دی 1396, 19:17 عصر
خب برادر مشکل از نوشتن خودتون هست داره میگه یک آکولاد اضافیه

Hadi-Hashemi
دوشنبه 04 دی 1396, 20:55 عصر
خیلی سخت شد تیکه کدشو ندارین؟میشه بیشتر راهنمایی کنید عزیز


using System;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}


private async void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 100; i++)
{
listBox1.Items.Add(Rndm());
await Task.Delay(1);
}
}


private static string Rndm()
{
string rnd_string = string.Empty;


Random rnd = new Random();


for (int i = 0; i < 3; i++)
{
rnd_string += (char)rnd.Next(65, 90);
}


rnd_string += rnd.Next(1000, 10000);


return rnd_string;
}
}
}

Hadi-Hashemi
دوشنبه 04 دی 1396, 20:58 عصر
عکس فرستادم البته من تو فرم کد گذاشتم یعنی یم دکمه گذاشتم داخل دکمه کد نوشتم


147335

دوستمون کد رو بصورت متد نوشتن و شما نمیتونی همونجوری بذاری توی دگمه. شما باید متد رو بیرون بنویسی و توی دگمه فراخوانی کنی.

vahidbolbol
چهارشنبه 06 دی 1396, 01:02 صبح
using System;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}


private async void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 100; i++)
{
listBox1.Items.Add(Rndm());
await Task.Delay(1);
}
}


private static string Rndm()
{
string rnd_string = string.Empty;


Random rnd = new Random();


for (int i = 0; i < 3; i++)
{
rnd_string += (char)rnd.Next(65, 90);
}


rnd_string += rnd.Next(1000, 10000);


return rnd_string;
}
}
}




با سلام
خیلییی ممنون بابت پاسختون دستتون درد نکنه
فقط اینکه بنده میخوام کل کدهای ایجاد شده رو کپی کنم اصلا نمیشه
میخوا کد ها داخل فایل ورد بزارم هر کاری کردم کپی بشه نشد

danialafshari
چهارشنبه 06 دی 1396, 04:37 صبح
با سلام
خیلییی ممنون بابت پاسختون دستتون درد نکنه
فقط اینکه بنده میخوام کل کدهای ایجاد شده رو کپی کنم اصلا نمیشه
میخوا کد ها داخل فایل ورد بزارم هر کاری کردم کپی بشه نشد

با سلام
برای اینکه با قالب بندی صحیح بیوفته بهتره از کد Screenshot بگیرید و عکسشو در فایل ورد قرار بدید
موفق باشید

vahidbolbol
جمعه 08 دی 1396, 01:32 صبح
با سلام
برای اینکه با قالب بندی صحیح بیوفته بهتره از کد Screenshot بگیرید و عکسشو در فایل ورد قرار بدید
موفق باشید


با سلام مدیر عزیز
آخه بنده کدهارو میخوام تو طرح ام کپی کنم به صورت عکس نمیشه
ابزاری نیست که بشه کپی کرد یا کدینیست که خروجی بهم به صورت فایل txt بده
خواهشا کمک کنید
تشکر

danialafshari
جمعه 08 دی 1396, 16:16 عصر
با سلام مدیر عزیز
آخه بنده کدهارو میخوام تو طرح ام کپی کنم به صورت عکس نمیشه
ابزاری نیست که بشه کپی کرد یا کدینیست که خروجی بهم به صورت فایل txt بده
خواهشا کمک کنید
تشکر
با سلام
نمیدونم مشکل شما چیه ولی اگه از ویژوال استودیو مستقیم توی word کپی کنید قالب رو حفظ می کنه

147365

موفق باشید

vahidbolbol
شنبه 09 دی 1396, 08:58 صبح
با سلام
نمیدونم مشکل شما چیه ولی اگه از ویژوال استودیو مستقیم توی word کپی کنید قالب رو حفظ می کنه

147365

موفق باشید

با سلام
مدیر جان منظور از کد خروجی کار ها بود نه کد برنامه نویسی
الان خروجی برنامه داخل یک لیست باکس نمایش داده میشه و از لیست باکس من نمیتونم کپی بگیرم میخوام وقتی 1000 تا عدد چاپ شد بتونم 1000تارو سلکت کنم ازشون کپی بگیرم و ببرم توی ورد مثالا
میشه خواهشا کمک کنید؟

vahidbolbol
شنبه 09 دی 1396, 09:00 صبح
using System;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}


private async void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 100; i++)
{
listBox1.Items.Add(Rndm());
await Task.Delay(1);
}
}


private static string Rndm()
{
string rnd_string = string.Empty;


Random rnd = new Random();


for (int i = 0; i < 3; i++)
{
rnd_string += (char)rnd.Next(65, 90);
}


rnd_string += rnd.Next(1000, 10000);


return rnd_string;
}
}
}



سلام دوست عزیز میشه بگی چجوری میشه خروجی را داخل یک textbox بگیرم بجای listbox

Hadi-Hashemi
شنبه 09 دی 1396, 12:18 عصر
سلام دوست عزیز میشه بگی چجوری میشه خروجی را داخل یک textbox بگیرم بجای listbox

سلام

توی فرم listbox رو پاک کن و بجاش textbox بذار. بعد خاصیت Multiline تکست باکس رو true کن.

از توی کد ها هم بجای این سطر:


listBox1.Items.Add(Rndm());

اینو بنویس:


textBox1.Text += Rndm() + Environment.NewLine;

Hadi-Hashemi
شنبه 09 دی 1396, 12:27 عصر
با سلام
مدیر جان منظور از کد خروجی کار ها بود نه کد برنامه نویسی
الان خروجی برنامه داخل یک لیست باکس نمایش داده میشه و از لیست باکس من نمیتونم کپی بگیرم میخوام وقتی 1000 تا عدد چاپ شد بتونم 1000تارو سلکت کنم ازشون کپی بگیرم و ببرم توی ورد مثالا
میشه خواهشا کمک کنید؟

دوست من اگه قراره همش نوشته های تصادفی ایجاد شده رو کپی کنی توی یه فایل متنی و نیازی فرم و نشون دادن توی textbox و اینجور چیزا نیست میشه برنامه رو تغییر داد و اینجوری نوشت که مستقیم توی یه فایل متنی بنویسه. وقتتو هم نگیره. خواستی تو اون مورد هم کمکت میکنم فقط از اول کامل بگو که دقیقا چی میخوای تا هی نیاز به تغییر برنامه نباشه، هم وقت خودت هم برای منتظر موندن جواب از اینجا گرفته نشه :لبخندساده:

vahidbolbol
شنبه 09 دی 1396, 16:59 عصر
دوست من اگه قراره همش نوشته های تصادفی ایجاد شده رو کپی کنی توی یه فایل متنی و نیازی فرم و نشون دادن توی textbox و اینجور چیزا نیست میشه برنامه رو تغییر داد و اینجوری نوشت که مستقیم توی یه فایل متنی بنویسه. وقتتو هم نگیره. خواستی تو اون مورد هم کمکت میکنم فقط از اول کامل بگو که دقیقا چی میخوای تا هی نیاز به تغییر برنامه نباشه، هم وقت خودت هم برای منتظر موندن جواب از اینجا گرفته نشه :لبخندساده:


سلام آقای هاشمی عزیز
ممنون بابت همه کمک هاتون که خیلییییییی بدردم خورد
اگه بشه که تو یک فایل متنی خروجی بده که عالیه وقتی دکمه اجرا زدم خروجی بهم تو فایل ورد بده یا مثلا نودپد یه فایل txt چنین راه کاری هست؟

danialafshari
شنبه 09 دی 1396, 18:45 عصر
سلام آقای هاشمی عزیز
ممنون بابت همه کمک هاتون که خیلییییییی بدردم خورد
اگه بشه که تو یک فایل متنی خروجی بده که عالیه وقتی دکمه اجرا زدم خروجی بهم تو فایل ورد بده یا مثلا نودپد یه فایل txt چنین راه کاری هست؟
با سلام
کاش یکمم خودتون تلاش میکردید
کار با کتابخانه IO از مباحث پایه برنامه نویسی هست و منابعش بسیار زیاده، در ضمن شما اگر برنامه های اینچنین می خواید بهتره به دور از شلوغی و در محیط کنسول بنویسید

private static StringBuilder sb = new StringBuilder();
static void Main(string[] args)
{
for (int i = 0; i < 100; i++)
{
sb.AppendLine(Rndm());
System.Threading.Thread.Sleep(50);
}
System.IO.File.WriteAllText(@"C:\test.txt", sb.ToString());
}

موفق باشید

vahidbolbol
یک شنبه 10 دی 1396, 14:55 عصر
با سلام
کاش یکمم خودتون تلاش میکردید
کار با کتابخانه IO از مباحث پایه برنامه نویسی هست و منابعش بسیار زیاده، در ضمن شما اگر برنامه های اینچنین می خواید بهتره به دور از شلوغی و در محیط کنسول بنویسید

private static StringBuilder sb = new StringBuilder();
static void Main(string[] args)
{
for (int i = 0; i < 100; i++)
{
sb.AppendLine(Rndm());
System.Threading.Thread.Sleep(50);
}
System.IO.File.WriteAllText(@"C:\test.txt", sb.ToString());
}

موفق باشید


با سلام
تشکر از زحمتتون
منم خیلی دوست دارم تو سی شارپ حرفه ای باشم و دارم تلاشمو میکنم

Hadi-Hashemi
شنبه 16 دی 1396, 22:16 عصر
سلام آقای هاشمی عزیز
ممنون بابت همه کمک هاتون که خیلییییییی بدردم خورد
اگه بشه که تو یک فایل متنی خروجی بده که عالیه وقتی دکمه اجرا زدم خروجی بهم تو فایل ورد بده یا مثلا نودپد یه فایل txt چنین راه کاری هست؟

سلام. ببخشید که دیر شد :لبخند: