الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن عمل ترقيم عشوائي لأكثر من 6 خانات

بدأه أبورنه في 25 مارس 2011 · 8 رد · 740 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

وجدت عدة أكواد في هذا المنتدى

ولكن ما اريده بالضبط هو كود ترقيم عشوائي مثلاً :

من : 1000000

الى : 2000000

لعدد : 50 رقم عشوائي

كلما حاولت اقوم بها تظهر لي مشكلة

    Dim RanNo() As Long
Private Sub RandomizeNumbers(ByVal iFrom As Integer, ByVal iTo As Integer)
    ReDim RanNo(iFrom To iTo)
    For i = iFrom To iTo
        RanNo(i) = i
    Next i
    Randomize (Timer)
    For i = iFrom To iTo
        j = CInt((iTo - iFrom) * Rnd + iFrom)
        tmp = RanNo(i)
        RanNo(i) = RanNo(j)
        RanNo(j) = tmp
    Next i
End Sub
Private Sub Command1_Click()
    RandomizeNumbers 100000, 200000
    ii = 0
    For i = 100000 To 200000
        List1.AddItem RanNo(i)
ii = ii + 1
        If ii = 50 Then
        Exit Sub
        Exit For
        End If

    Next i
End Sub

تم تعديل هذه المشاركة بواسطة أبورنه في 25 مارس 2011 في 13:52

#2

جرب مايلي

Dim exist As String
        Randomize 
        Dim index As long
        Dim rr As long
        exist = ""
        Do While index < 50
            rr = CLng(Rnd  * 100000) + 100000
            If InStr(1, exist, rr) = 0 Then
                index = index + 1
                exist = exist & " " & rr
                List1.AddItem rr 
                Debug.Print index & "-" & rr 
            End If
        Loop

تم تعديل هذه المشاركة بواسطة TareqVB في 27 مارس 2011 في 10:39 — السبب: تم التعديل ليعمل الكود بشكل صحيح

#3

يوجد خطأ في الكود Randomize()

او أني لم اعرف اطبقه بشكل جديد

ممكن اخي توضح لي طريقة الكود وين اضعه وكيف اقوم بتطبيقه

لا حرمك الله الأجر

وجزاك الله خير

#4

جرب مرة اخرى حيث اني عدلت الكود وسبب المشكلة هو وجود الاقواس .

الشرح

rr = CLng(Rnd * 100000) + 100000

توليد رقم عشوائي ودالة rnd تعيد رقم بين 0 و1 لذا قمنا بعملية حسابية لنصل الى المطلوب .

المتغير exist نضع به الارقام السابقة لنتأكد فيما بعد من عدم وجود هذا الرقم العشوائي .

نفحص الوجود في الكود If InStr(1, exist, rr) = 0 Then

نضع الرقم في قائمة List1.AddItem rr (حسب ما رأيت في كودك السابق)

#5

جزاك الله أخوي

ولكن نفس المشكلة

شاهد الصور

إذا كانت أكثر من 5 خانات تظهر المشكلة

post-11441-091825300 1301083655_thumb.jp

post-11441-063313000 1301083809_thumb.jp

المرفقات
01.jpg02.jpg
#6
Private Function RandomNumBetween(ByVal LowerLimit As Long, ByVal UpperLimit As Long) As Long
RandomNumBetween = Rnd * (UpperLimit - LowerLimit) + LowerLimit
End Function


Private Sub Command1_Click()
For i = 1 To 50
List1.AddItem RandomNumBetween(1000000, 2000000)
Next
End Sub

تم تعديل هذه المشاركة بواسطة محمدvb في 26 مارس 2011 في 09:04

#8

جزاك الله خير

وفرج همك

ممتاز جداً

هل الكود لا يقبل التكرار

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…