واضح آرشیو وب فارسی:سایت ریسک: sltavakoli06-04-2008, 08:43 PMسلام. چه جوری میشه از Vb یه عدد با ترکیب حروف گرفت که رندوم انتخاب بشه؟مثلا طول این کاراکتر ها هم 6 تا باشه؟ lord_ashkan_z06-04-2008, 10:27 PMشما مي توانيد 6 عدد رندم را پيدا كنيد و آنها را برابر با keycode قرار دهيد. براي اينكه كاركترهايي مثل اينتر را وارد نكند نيز بنويس اگر عدد رندم برابر keycode دكمه اينتر بو دوباره رندم بگيره ULF_VB 607-04-2008, 07:30 AMحتما میدونید که کد اسکی کاراکترها از 0 تا 255 هستن. اعداد از 1 تا 31 مخصوص کلیدهایی مثل Enter و Delete و ... هستن. حالا شما میخوای یه رشته 6 کاراکتری به صورت رندم تولید کنید. برای اینکار باید 6 تا عدد پیدا کنید که از 32 تا 255 باشن (البته اگه بخواید تولید رشته رو هم محدود کنید، بازم این رنج محدودتر میشه). بعد با استفاده از تابع Chr این کدها رو به معادل کاراکتری شون تبدیل میکنید. و در آخر هم 6 تا حرف دارید که باید بذاریدشون کنار هم تا یه رشته بشن. برای تولید اعداد توی یه رنج خاص من از این راه استفاده میکنم. مثلا برای 32 تا 255 : 255-32=223 حالا با استفاده از تابع Rnd یه عدد رندم پیدا میکنیم که کوچیکتر یا مساوی 223 باشه. بعد اون عدد رو با 32 جمع میکنیم. امیدوارم خوب توضیح داده باشم. sltavakoli08-04-2008, 03:58 PMحتما میدونید که کد اسکی کاراکترها از 0 تا 255 هستن. اعداد از 1 تا 31 مخصوص کلیدهایی مثل Enter و Delete و ... هستن. حالا شما میخوای یه رشته 6 کاراکتری به صورت رندم تولید کنید. برای اینکار باید 6 تا عدد پیدا کنید که از 32 تا 255 باشن (البته اگه بخواید تولید رشته رو هم محدود کنید، بازم این رنج محدودتر میشه). بعد با استفاده از تابع Chr این کدها رو به معادل کاراکتری شون تبدیل میکنید. و در آخر هم 6 تا حرف دارید که باید بذاریدشون کنار هم تا یه رشته بشن. برای تولید اعداد توی یه رنج خاص من از این راه استفاده میکنم. مثلا برای 32 تا 255 : 255-32=223 حالا با استفاده از تابع Rnd یه عدد رندم پیدا میکنیم که کوچیکتر یا مساوی 223 باشه. بعد اون عدد رو با 32 جمع میکنیم. امیدوارم خوب توضیح داده باشم. اقا.افتضاح توضیح دادید.:31: بزارید این جوری توضیح بدم: 1-کدی که یه رشته ی عددی 6 رقمی رو به صورت رندوم و بدون ممیز با ما بدهد. 2-کدی که مقدار علاوه بر موارد گفته شده در بالا شامل # و % و $ هم باشه. امیدوارم متوجه شده باشید یا حق. ULF_VB 608-04-2008, 04:21 PMمن درست توضیح دادم. ایراد از شماست که تا حالا کار نکردید، و متوجه نمیشید. من چمیدونستم که شما تا حالا با تابع Rnd کار نکردید. ببین عزیز من، این تابع یه عدد بین 0 تا 1 میده. مقدار 0 میشه، ولی هیج موقع برابر با یک نمیشه. حالا شما مثلا میخواید یه عدد صحیح بین 0 تا 9 بگیری. چیکار باید بکنید؟ از این کد استفاده میکنید. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! اون رنج عددی ای هم که گفتم شامل تمام حروف میشه. حتی چیزایی که مطمئنا مایل نیستید تو نتیجه باشن. مثل اینا : © ¨ § ¦ ʙ ¤ £ ¢ حالا به خودتون یه مقدار زحمت بدید و یه مقدار فسفر مصرف کنید، ببنید با توجه به این مطالبی که گفتم چطوری میتونید یه کد 6 حرفی از حروفی که به صورت رندم تولید شدن ایجاد کنید. :10: اگه نتونستی :41: ، اون موقع بگو، بازم بیشتر راهنماییت کنم!!!. البته فکر کنم، دیگه باید کد رو به صورت کامل براتون بنویسم. :19: sltavakoli08-04-2008, 08:57 PMپس از 10 دقیقه فسفر سوزوندت فهمیدم. حالا فقط 2 تا مشکل دارم: چی کار کنیم تا حروف فارسی توی رشته ای که میخواهیم بسازیم نباشه؟ 2-تابع rnd چه جوری محدود میشه؟ lord_ashkan_z08-04-2008, 09:04 PMالبته من يه چيزي بگم اينكه تمام كاركترهاي كامپيوتر 256 تا نيست. مثلا من در موقع نصب ويندوز تمام زبان هاي آسياي شرقي را فعال كردم پس اين ها هم جز كاركترها حساب ميشه. شما مي توني دامنه كاركتر هاي مورد نظرتون را پيدا كنيد و بين آنها رندوم بديد. ULF_VB 608-04-2008, 09:31 PMالبته من يه چيزي بگم اينكه تمام كاركترهاي كامپيوتر 256 تا نيست. مثلا من در موقع نصب ويندوز تمام زبان هاي آسياي شرقي را فعال كردم پس اين ها هم جز كاركترها حساب ميشه. شما مي توني دامنه كاركتر هاي مورد نظرتون را پيدا كنيد و بين آنها رندوم بديد. بله تایید میشه. ULF_VB 608-04-2008, 10:16 PMبفرمایید اینم کدی که خواستید کمتر از 10 دقیقه شد. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! ULF_VB 608-04-2008, 10:25 PMفقط یه توضیحی بدم. اون رشته ی st ، کل کاراکترهایی رو که می خواید توی رشته ی نهایی باشن، اونجا بدون فاصله بنویسید. اون حلقه اول هم برای این گذاشتم که کاراکترها تکراری انتخاب نشن. اگه حذف بشه، هر بار که این کد اجرا بشه، یه رشته یکسان میده. ULF_VB 609-04-2008, 04:16 PMجناب توکلی. من این کد رو با این که مطمئن بودم که کار میکنه، مجددا تست کردم. بدون مشکل اجرا شد. لطفا همینجا تو فروم مشکلتون رو بنویسید، این طوری راحت تر میشه مشکلتون رو حل کرد. بهرام_6210-04-2008, 09:24 PMسلام دوستان گفتم یک تاپیک دیگه نزم و مشکلم رو همینجا بگم می خواستم بگم که تابع رندوم یک تابع چرتهhttp://qsmile.com/qsimages/161.gif اعصابم رو ریخته به هم این اصلا شانسی نیست فقط به ترتیب اعدادی رو که از قبل براش تعریف شده رو خروجی میده باور نمی کنید؟؟؟؟؟؟؟؟؟؟؟؟؟؟ توی یک دکمه توی وی بی تایپ کنید: Private Sub Command 1_Click() Text1.Text = Rnd() End Sub حالا برنامه رو اجرا کنید با هر کلیک به ترتیب این اعداد میاد: 0.7055475 0.533424 0.5795186 0.2895625 0.301948 0.7747401 1.401764E-02 و ..... اینا همیشه همیناست یعنی اگر دوباره برنامه رو اجرا کنید دوباره اینا از اول شروع میشهhttp://qsmile.com/qsimages/37.gif این نامردی نیست؟http://qsmile.com/qsimages/54.gif من یک تابع رندوم واقعی می خوامhttp://qsmile.com/qsimages/162.gif جون من هر کی بلده جواب بده بهرام_6213-04-2008, 07:57 PMهیچکی نیست بدونه باید چکار کنم؟ ULF_VB 614-04-2008, 10:59 AMدوست عزیز، اگه کمی به کدی که من تو صفحه قبل نوشتم دقت میکردید، متوجه میشدید که این مشکل رو حل کردم. کافیه این کد رو قبل از تابع Rnd به کار ببرید (یا یه چیزی شبیه به همین) !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! این یک حلقست که باعث میشه تابع Rnd به تعداد n بار تکرار بشه. و این مشکل حل بشه. Js0ner14-04-2008, 09:00 PMسلام دوستان گفتم یک تاپیک دیگه نزم و مشکلم رو همینجا بگم می خواستم بگم که تابع رندوم یک تابع چرتهhttp://qsmile.com/qsimages/161.gif اعصابم رو ریخته به هم این اصلا شانسی نیست فقط به ترتیب اعدادی رو که از قبل براش تعریف شده رو خروجی میده باور نمی کنید؟؟؟؟؟؟؟؟؟؟؟؟؟؟ توی یک دکمه توی وی بی تایپ کنید: حالا برنامه رو اجرا کنید با هر کلیک به ترتیب این اعداد میاد: 0.7055475 0.533424 0.5795186 0.2895625 0.301948 0.7747401 1.401764E-02 و ..... اینا همیشه همیناست یعنی اگر دوباره برنامه رو اجرا کنید دوباره اینا از اول شروع میشهhttp://qsmile.com/qsimages/37.gif این نامردی نیست؟http://qsmile.com/qsimages/54.gif من یک تابع رندوم واقعی می خوامhttp://qsmile.com/qsimages/162.gif جون من هر کی بلده جواب بده من Vb کار نیستم کارم کیجنینگه و کیجن نویسی رو تو Vb خیلی خوب بلدم. بهتره که Randomize Timer را قبل از اوون کدت بکار ببری! :11: Js0ner16-04-2008, 12:19 AMچطوی میشه بین دو عدد مثلا 97 و 122 راندوم زد. من که هر کاری می کنم غیر از اینها هم راندوم می خوره :41: ULF_VB 616-04-2008, 10:05 AMمن به این سوال هم تو صفحه اول پاسخ دادم (اگه دقت میکردید) 122 رو از 97 کم میکنید. میشه 25 حالا یه عدد رندم میکنید که 0 تا 25 باشه. بعد عدد به دست اومده رو به اضافه ی 97 میکنید. همین. بهرام_6216-04-2008, 10:09 PMدوست عزیز، اگه کمی به کدی که من تو صفحه قبل نوشتم دقت میکردید، متوجه میشدید که این مشکل رو حل کردم. کافیه این کد رو قبل از تابع Rnd به کار ببرید (یا یه چیزی شبیه به همین) مرسیhttp://qsmile.com/qsimages/46.gif ولی این یک جور کلکه یعنی وی بی با اینهمه عظمتش یک کد رندوم واقعی نداهhttp://qsmile.com/qsimages/65.gif البته وی بی عظمتی هم ندارهhttp://qsmile.com/qsimages/39.gif یک سوال؟ اصلا کلا تو زبان های دیگه برنامه نویسی کدی هست برای رندوم؟ یک سوال دیگه؟ شما برای گرفتن ثانیه یک زمان از کد زیر استفاده می کنید: Second (Now) اگر بخوام صدم ثانیه یک زمان رو بگیرم باید چکار کنم؟http://qsmile.com/qsimages/39.gif lord_ashkan_z16-04-2008, 10:42 PMدر مورد سوال اول: بله در همه. تا اون جا كه من ديدم دستور random در همه جواب ميده ولي در هر زبان به صورت مخفف ي نيز بيان مي شود. در مورد سوال دوم به تاپيك مسائل پيشرفته در تالار VB مراجعه كن Smafias24-04-2008, 06:47 PMدوست عزیز، اگه کمی به کدی که من تو صفحه قبل نوشتم دقت میکردید، متوجه میشدید که این مشکل رو حل کردم. کافیه این کد رو قبل از تابع Rnd به کار ببرید (یا یه چیزی شبیه به همین) !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! این یک حلقست که باعث میشه تابع Rnd به تعداد n بار تکرار بشه. و این مشکل حل بشه. چرا یک کد غیر منطقی رو استفاده میکنید - از شما بعیده 1-اگر من این کد رو در همین لحظه اجرا کنم و فردا هم دقیقا همین لحظه اجرا کنم نتیجه یکسان میشود. 2-کلی از سی پی یو کار میکشی که چی بشه (بیچاره سی پی یو) عوض این همه دردسر میتونید از تابع Randomize استفاده کنید. البته اون کدی که تو صفحه قبل نوشتین هم بازهم پیچیده است - میشد خیلی ساده تر نوشت. sltavakoli24-04-2008, 08:37 PMمیشه بگید چه جوری با Randomize کار میکنن؟ بهرام_6224-04-2008, 10:31 PMچرا یک کد غیر منطقی رو استفاده میکنید - از شما بعیده 1-اگر من این کد رو در همین لحظه اجرا کنم و فردا هم دقیقا همین لحظه اجرا کنم نتیجه یکسان میشود. 2-کلی از سی پی یو کار میکشی که چی بشه (بیچاره سی پی یو) عوض این همه دردسر میتونید از تابع Randomize استفاده کنید. البته اون کدی که تو صفحه قبل نوشتین هم بازهم پیچیده است - میشد خیلی ساده تر نوشت. راست میگه منم این کد رو به معلمم نشون دادم کلی بهم خندیدhttp://qsmile.com/qsimages/39.gif میشه بگید چه جوری با Randomize کار میکنن؟ !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! گر امتحان کنی می بینی که هر دفعه یک عدد جدید رو نشون می ده:21: ULF_VB 626-04-2008, 10:26 AMچرا یک کد غیر منطقی رو استفاده میکنید - از شما بعیده 1-اگر من این کد رو در همین لحظه اجرا کنم و فردا هم دقیقا همین لحظه اجرا کنم نتیجه یکسان میشود. 2-کلی از سی پی یو کار میکشی که چی بشه (بیچاره سی پی یو) عوض این همه دردسر میتونید از تابع Randomize استفاده کنید. البته اون کدی که تو صفحه قبل نوشتین هم بازهم پیچیده است - میشد خیلی ساده تر نوشت. ببخشید. معذرت. از قدیم گفتن: همه چیز را همگان دانند. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1431]