17-10-12, 02:41 PM
كاتب الموضوع : Programmation
السلام عليكم ورحمة الله وبركاتهإخـواني الأعضـاء الكرام, كيف حال الجميع؟
أسـأل الله العظيم أن تكونوا فى أفضل حال وأتم عافية
وجدت الكثير من الأسئلة المتعلقة بكيفية الحصول على نصوص عشوائية على المنتديات خلال بحثي على الشبكة, فقررت أن أقوم بعمل دالة توفر لك هذه العملية (توليد النصوص العشوائية) مع بعض الإمكانيات البسيطة كتحديد عدد الحروف الأتية داخل نص وكذلك إذا ما كنت تُريدها حروفاً كبيرة (Capital) أو صغيرة (Small) او حتى إذا كنت تُريد النص مُكون من الحروف الكبيرة والصغيرة معاً, فالدالة تحتوي على ثلاثة Parameters من النوع Optional (معاملات إختيارية) أي يُمكنك وضع القيم لها او حتى لا تُعطيها قيم فكما نعلم أن المعاملات الإختيارية تحتوي على قيم إفتراضية فأتمنى أن تستفيدوا منها جميعاً.
الدالة:
كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#dd0000]'Author: Programmation(OmarNegm)
Public Function RandomString(Optional ByVal CharactersCount As Integer = 5, Optional ByVal LCaseString As Boolean = False, Optional ByVal UCaseString As Boolean = False) As String
Dim Chrs As String, LstStr As String
Dim I As Integer, X As Integer, Y As Integer
'[/COLOR][COLOR=#007700]---------------------------
[/COLOR][color=#0000bb]Chrs [/color][color=#007700]= [/color][COLOR=#dd0000]"abcdefghijklmnopqrstuvwxyz"
[/COLOR][color=#007700]If [/color][color=#0000bb]LCaseString [/color][color=#007700]= [/color][COLOR=#0000bb]True Then
Chrs [/COLOR][color=#007700]= [/color][COLOR=#0000bb]Chrs
[/COLOR][color=#007700]ElseIf [/color][color=#0000bb]UCaseString [/color][color=#007700]= [/color][COLOR=#0000bb]True Then
Chrs [/COLOR][color=#007700]= [/color][color=#0000bb]UCase[/color][color=#007700]([/color][color=#0000bb]Chrs[/color][COLOR=#007700])
Else
[/COLOR][color=#0000bb]Chrs [/color][color=#007700]= [/color][color=#0000bb]LCase[/color][color=#007700]([/color][color=#0000bb]Chrs[/color][color=#007700]) & [/color][color=#0000bb]UCase[/color][color=#007700]([/color][color=#0000bb]Chrs[/color][COLOR=#007700])
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If
[/COLOR][COLOR=#dd0000]'---------------------------
I = 0
X = Len(Chrs)
LstStr = ""
Do Until I = CharactersCount
Y = Int(Rnd * (X))
If Not Y = 0 Then
If LstStr = "" Then
LstStr = Mid$(Chrs, Y, 1)
I = I + 1
Else
LstStr = LstStr & Mid$(Chrs, Y, 1)
I = I + 1
End If
End If
Loop
'[/COLOR][COLOR=#007700]---------------------------
[/COLOR][color=#0000bb]RandomString [/color][color=#007700]= [/color][COLOR=#0000bb]LstStr
End [/COLOR][COLOR=#007700]Function
[/COLOR][color=#0000bb][/color][/COLOR]
كيفية التعامل مع الدالة:
فقط ضع الدالة داخل Module ويُمكنك بعدها إستدعائها من داخل أي نموذج (Form) داخل المشـروع
أما عن طريقة إستخدامك لها برمجياً فسيكون الأمر بالأكواد البسيطة التالية:
أولاً الكود التالي سوف يقوم بتوليد نص مكون من 5 حروف عشوائية مكونة من الحروف الكبيرة (Capital) و الصغيرة (Small) داخل الـ Text1 :
كود :
[color=#000000][COLOR=#0000bb]Text1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#0000bb]RandomString[/color][COLOR=#007700]()
[/COLOR][color=#0000bb][/color][/COLOR]
اما أذا كنت تُريد تحديد عدد الحروف العائدة فتلك مهمة المعامل الأول ويُمكنك تحديد عدد الحروف بالطريقة التالية:
الكود التالي سوف يقوم بتوليد نص مكون من 20 حرف مكون من الحروف الصغيرة والكبيرة:
كود :
[color=#000000][COLOR=#0000bb]Text1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#0000bb]RandomString[/color][color=#007700]([/color][color=#0000bb]20[/color][COLOR=#007700])
[/COLOR][color=#0000bb][/color][/COLOR]
كذلك يُمكنك تحديد حالة الحروف من صغيرة او كبيرة بالطريقة التالية:
الكود التالي سوف يقوم بتوليد 8 حروف مكونة من الحروف الصغيرة فقط:
كود :
[color=#000000][COLOR=#0000bb]Text1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#0000bb]RandomString[/color][color=#007700]([/color][color=#0000bb]8[/color][color=#007700], [/color][color=#0000bb]True[/color][COLOR=#007700])
[/COLOR][color=#0000bb][/color][/COLOR]
او
كود :
[color=#000000][COLOR=#0000bb]Text1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#0000bb]RandomString[/color][color=#007700]([/color][color=#0000bb]8[/color][color=#007700], [/color][color=#0000bb]True[/color][color=#007700], [/color][color=#0000bb]False[/color][COLOR=#007700])
[/COLOR][color=#0000bb][/color][/COLOR]
كلا الطريقتين جائزتين.
والكود التالي سوف يقوم بتوليد 12 حرف مكون من الحروف الكبيرة فقط:
كود :
[color=#000000][COLOR=#0000bb]Text1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#0000bb]RandomString[/color][color=#007700]([/color][color=#0000bb]12[/color][color=#007700], , [/color][color=#0000bb]True[/color][COLOR=#007700])
[/COLOR][color=#0000bb][/color][/COLOR]
أو
كود :
[color=#000000][COLOR=#0000bb]Text1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#0000bb]RandomString[/color][color=#007700]([/color][color=#0000bb]12[/color][color=#007700], [/color][color=#0000bb]False[/color][color=#007700], [/color][color=#0000bb]True[/color][COLOR=#007700])
[/COLOR][color=#0000bb][/color][/COLOR]
كلا الطريقتين جائزتين.
أتمنى أن تستفيدوا من الدالة, ولا تنسونا من صالح دعائكم
والسـلام عليكم ورحمة الله وبركاته