با سلام خدمت دوستان
یه برنامه میخواستم بنویسم که در یک box هزار (1000) تا عدد و 1000 تا اسم رو از ورودی بگیره و در 6 تا خروجی به صورت random چاپ کنه.
حالا از دوستان میخوام راهنماییم کنند که چطوری بنویسم.
ممنون.
Printable View
با سلام خدمت دوستان
یه برنامه میخواستم بنویسم که در یک box هزار (1000) تا عدد و 1000 تا اسم رو از ورودی بگیره و در 6 تا خروجی به صورت random چاپ کنه.
حالا از دوستان میخوام راهنماییم کنند که چطوری بنویسم.
ممنون.
دوست عزیز منظورتون رو خوب متوجه نشدم.
یعنی میخوای به تر تیب یه اسم و عدد رو بگیره یا اول 1000 تا اسم بعد 1000 تا عدد؟
به حر حال دو تا آرایه میخواد با 2 تا حلقه.:46:
بعدم با تابع rnd به صورت تصادفی دستور چاپ رو میدی.
اگه خواستین بگین تا کدشو بزارم.
اول 1000 تا اسم بعد 1000 تا عدد حالا الزاما 1000 هم نباشه مهم نیست
ولی مهم تو 6 تا خروجی به صورت "اسم ، عدد ، اسم" و رندم چاپ کنه.
ممنون میشم اگه کدشو هم بزارین.
این کد برنامه ای که میخواستی
این برنامه برای هر تعداد دلخواه هستش
اول دو تا تکست باکس به نام های txtname , txtadad بذار و دو تا هم لیست باکس (که میتونی مخفی شون کنی) به نام های lstname , lstadad بذار و دو تا دکمه به نام های add , randomprint بذار
کدش خیلی سادست یه کم توجه کنی متوجه میشی
اینم کدش:
یا علی ... :5:کد:
Private Sub add_Click()
Lstadad.AddItem txtadad
lstname.AddItem txtname
End Sub
Private Sub Form_Load()
Randomize Timer
End Sub
Private Sub randomprint_Click()
m = Lstadad.ListCount \ 6
For j = 1 To 6
a = FreeFile
Open App.Path & "/" & j & ".txt" For Append As #a
For i = 1 To m
num = Int(Rnd() * Lstadad.ListCount)
Print #a, lstname.List(num) & " , " & Lstadad.List(num)
Lstadad.RemoveItem (num)
lstname.RemoveItem (num)
Next i
Close
Next j
Open App.Path & "/" & "6.txt" For Append As #a
For i = 1 To Lstadad.ListCount
Print #a, lstname.List(0) & " , " & Lstadad.List(0)
Lstadad.RemoveItem (0)
lstname.RemoveItem (0)
Next i
Close
End Sub
من با این کد مشکل دارم
همانطور که گفته بودید انجام دادم
اعداد رو از text box ها میخونه و با زدن add وارد list box ها میکنه و هر دفعه ذخیره میکنه
ولی رندم پرینت هیچ کاری نمیکنه یعنی وقتی میزنم list box ها پاک میشن در صورتی که مامیخایم 6 تا از ورودی ها رو به صورت رندم چاپ کنه!!!!
لطفا اگه میشه راهنمایی کنید.
من 2 تا موضوع رو نمی فهمم
1- آیا میخواید کل 1000 داده رو در 6 فایل درج کنه یا بوسیله پرینتر پرینت کنه یا روی فرم چاپ کنه؟
2- اگه منظورت در 6 فایله آیا منظورت for random هستش یا منظورت به صورت تصادفی است؟
بهتره کامل توضیح بدی چون این برنامه ای که من برات گذاشتم کل اطلاعات رو در 6 فایل(تقریبا به طور مساوی) در کنار محل ذخیره برنامه درج میکنه
توضیح بده در خدمتیم
یا علی ...:5:
به طور کلی یه آرایه تعریف کنیم که یه تعداد اسم و عدد رو از ورودی بگیره داخل یه دونه text.( مثلا 1000 تا)
بعد از اینکه توی آرایه ذخیره کرد به صورت رندم در خروجی چاپ کنه!!! حالا چطور!!!
به این صورت که ما وقتی مثلا 1000 تا اسم و عدد رو وارد کردیم از این 1000 تا به صورت تصادفی چند تا از ورودی ها رو توی مثلا یه لیست باکس (یا اگه یکی نمیشه تو 3 تا لیست) یا توی فرم چاپ کنه به صورت: اول یه اسم بعد یه عدد بعد یه اسم(مثل شکل زیر)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
حالا 6 چیه!!!
6 ردیف از این اسم عدد اسم ها رو میخواهیم به صورت تصادفی تو لیست چاپ کنه!!
همین.
ای بابا این که خیلی ساده تر از اونیه که برات نوشتم
اینم کدش فقط من از inputbox استفاده کردم(اگه تو میخوای میتونی با کمی تغییر از textbox استفاده کنی)
اول 1000 نام بعد 1000 عدد وارد کن
اینم کدش :
کد:Dim a(0 To 1, 0 To 999)
Private Sub add_Click()
For j = 0 To 1
For i = 0 To 1
a(j, i) = InputBox("نام" & i & "را وارد نماييد")
Next i
Next j
For i = 1 To 6
num1 = Int(Rnd() * 1000)
num2 = Int(Rnd() * 1000)
num3 = Int(Rnd() * 1000)
Print a(0, num1) & " " & a(1, num2) & " " & a(0, num3)
Next i
End Sub
Private Sub Form_Load()
Randomize Timer
End Sub
امر دیگه؟
یا علی ...:5:
بازم خروجی رو نشون نمیده و فقط 2 تا نام رو از ورودی میگیره
به عکسی آپ کردم توجه کنید میفهمید منظورم چیه!!
ببخشید من یادم رفت درستش کنم قسمت اولش رو اینطور تفییر بده
اینم کشد ولی اصلا تو ویژوال بلدی یا دنبال یه خوراک آماده ای؟
کد:Private Sub add_Click()
For j = 0 To 1
For i = 0 To 1000
یا علی ...:5:
are balad bodam yadam rafte vali dar hal mer30
به هر حال امیدوارم مشکلت حل شده باشه
موفق باشی