منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
Random من listbox - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : Random من listbox (/showthread.php?tid=19034)



Random من listbox - Mohamed20 - 31-01-17

اريد انشاء Random list من listbox بدون تكرار نفس item هذا هو الكود لاكن لايعمل يتم التكرار
كود :
       Dim r As New Random
       For i = 0 To 10
           If Not ListBox3.Items.Contains((ListBox2.Items(r.Next(0, ListBox2.Items.Count)) Then
               ListBox3.Items.Add(ListBox2.Items(r.Next(0, ListBox2.Items.Count)))
           End If
       Next



RE: Random من listbox - noway - 31-01-17

[attachment=12999]


RE: Random من listbox - Mohamed20 - 31-01-17

سؤال هل يمكن العمل على الفئات مثل يوجد هذه المجموعة

vb4arb2
vb4arb5
vb4arb+5%
vb1
vb2
vb3
vb4
vv1
vv2
vv3
هنا يوجد ثلاث مجموعات المشكلة انى اريد ان يدف من كل مجموعة حاجة وحدة بمعنى انه لا يضيف فى random من نفس المجموعة غير مرة واحدة

الناتج
vb4arb5
vb4
vv1

وليس
vb4arb5
vb4
vb4arb1
vv1
vb1


RE: Random من listbox - مساعدة - 31-01-17

السلام عليكم

المثال غير مفهوم،
ياليت تراجع بنفسك المثال التي أنت وضعته من حيث العناصر الأساسية وعناصر النتيجة.


RE: Random من listbox - noway - 31-01-17

[attachment=13000]
لو كانت المجموعات مرتبة، وتعرف بداية و نهاية كل مجموعة ممكن ينفع معاك البرنامج ده


RE: Random من listbox - Mohamed20 - 31-01-17

(31-01-17, 10:05 AM)مساعدة كتب : السلام عليكم

المثال غير مفهوم،
ياليت تراجع بنفسك المثال التي أنت وضعته من حيث العناصر الأساسية وعناصر النتيجة.

(31-01-17, 12:13 PM)noway كتب : لو كانت المجموعات مرتبة، وتعرف بداية و نهاية كل مجموعة ممكن ينفع معاك البرنامج ده
فى بعد الوقت يتم اضافة نفس item مرتين
هذا مثال عن كيف اضافة المجوعات


RE: Random من listbox - مساعدة - 31-01-17

ما المقصود بالمجموعة؟

أرجو التوضيح لإيجاد الكود المناسب


RE: Random من listbox - noway - 31-01-17

(31-01-17, 02:52 PM)Mohamed20 كتب :
(31-01-17, 10:05 AM)مساعدة كتب : السلام عليكم

المثال غير مفهوم،
ياليت تراجع بنفسك المثال التي أنت وضعته من حيث العناصر الأساسية وعناصر النتيجة.

(31-01-17, 12:13 PM)noway كتب : لو كانت المجموعات مرتبة، وتعرف بداية و نهاية كل مجموعة ممكن ينفع معاك البرنامج ده
فى بعد الوقت يتم اضافة نفس item مرتين
هذا مثال عن كيف اضافة المجوعات
انت معدلتش على بداية و نهاية كل مجموعة
بداية و نهاية كل مجموعة انت المفروض بتغيرها على حسب مجموعتك
التكرار نتج عن عدم تعديلك لبداية و نهاية كل مجموعة اللى هما (a,b) على حسب list item
[attachment=13003] تم تعديلها على حسب بيانات list اللى انت بعتها


RE: Random من listbox - مساعدة - 31-01-17

جربي الكود التالي في المشروع المرفق في المشاركة رقم 6#
كود :
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

   ' افراغ أداة النتائج
   ListBox2.Items.Clear()

   ' قراءة جميع العناصر
   Dim arr() As String = (From x As String In ListBox1.Items Distinct).ToArray

   ' قراءة انواع المجموعات
   Dim grps() As String = (From x As String In arr Select x.Split(".")(1) Distinct).ToArray

   Dim rnd As New Random ' استخدام كلاس العشوائيات
   ' التقاط عنصر عشوائي واحد من كل مجموعة وعرضها في أداة النتائج
   For Each itm In grps

       ' قراءة عناصر المجموعة
       Dim grp() As String = (From x As String In arr Where x.Split(".")(1).Equals(itm)).ToArray

       ' التقاط عنصر عشوائي واحد من المجموعة
       Dim v As String = grp(rnd.Next(0, grp.Length))

       ' إضافة العنصر في أداة النتائج
       ListBox2.Items.Add(v)

   Next

End Sub

حسب ما فهمته من المشروع المرفق في المشاركة رقم 6# أن المجموعة هي ما بعد النقطة لكل عنصر فتكون المجموعات:
Fs
Ee
Ae
De


RE: Random من listbox - Mohamed20 - 01-02-17

(31-01-17, 03:28 PM)noway كتب :
(31-01-17, 02:52 PM)Mohamed20 كتب :
(31-01-17, 10:05 AM)مساعدة كتب : السلام عليكم

المثال غير مفهوم،
ياليت تراجع بنفسك المثال التي أنت وضعته من حيث العناصر الأساسية وعناصر النتيجة.

(31-01-17, 12:13 PM)noway كتب : لو كانت المجموعات مرتبة، وتعرف بداية و نهاية كل مجموعة ممكن ينفع معاك البرنامج ده
فى بعد الوقت يتم اضافة نفس item مرتين
هذا مثال عن كيف اضافة المجوعات
انت معدلتش على بداية و نهاية كل مجموعة
بداية و نهاية كل مجموعة انت المفروض بتغيرها على حسب مجموعتك
التكرار نتج عن عدم تعديلك لبداية و نهاية كل مجموعة اللى هما (a,b) على حسب list item
تم تعديلها على حسب بيانات list اللى انت بعتها
جزاك الله خير
(31-01-17, 04:18 PM)مساعدة كتب : جربي الكود التالي في المشروع المرفق في المشاركة رقم 6#
كود :
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

   ' افراغ أداة النتائج
   ListBox2.Items.Clear()

   ' قراءة جميع العناصر
   Dim arr() As String = (From x As String In ListBox1.Items Distinct).ToArray

   ' قراءة انواع المجموعات
   Dim grps() As String = (From x As String In arr Select x.Split(".")(1) Distinct).ToArray

   Dim rnd As New Random ' استخدام كلاس العشوائيات
   ' التقاط عنصر عشوائي واحد من كل مجموعة وعرضها في أداة النتائج
   For Each itm In grps

       ' قراءة عناصر المجموعة
       Dim grp() As String = (From x As String In arr Where x.Split(".")(1).Equals(itm)).ToArray

       ' التقاط عنصر عشوائي واحد من المجموعة
       Dim v As String = grp(rnd.Next(0, grp.Length))

       ' إضافة العنصر في أداة النتائج
       ListBox2.Items.Add(v)

   Next

End Sub

حسب ما فهمته من المشروع المرفق في المشاركة رقم 6# أن المجموعة هي ما بعد النقطة لكل عنصر فتكون المجموعات:
Fs
Ee
Ae
De

جزاك الله خير
تمام الكود يعمل تمام اذا كانت المجموعة كلاتى لاكن عن اضافة هذه المجموعة
1L.Water+1%
2L.Water+5%
3L.Water+15%
لم يعمل يتم اضافة نفس المجموعة كاملة