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

التوليد للحروف كلها من ثلاث خانات فقط

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

الأخوة الأعزاء استطعنت التوصل الى الكود التالي

Private Sub Form_Load()
arabChar(0) = "أ"
arabChar(1) = "ب"
arabChar(2) = "ت"
arabChar(3) = "ث"
arabChar(4) = "ج"
arabChar(5) = "ح"
arabChar(6) = "خ"
arabChar(7) = "د"
arabChar(8) = "ذ"
arabChar(9) = "ر"
arabChar(10) = "ز"
arabChar(11) = "س"
arabChar(12) = "ش"
arabChar(13) = "ص"
arabChar(14) = "ض"
arabChar(15) = "ط"
arabChar(16) = "ظ"
arabChar(17) = "ع"
arabChar(18) = "غ"
arabChar(19) = "ف"
arabChar(20) = "ق"
arabChar(21) = "ك"
arabChar(22) = "ل"
arabChar(23) = "م"
arabChar(24) = "ن"
arabChar(25) = "ه"
arabChar(26) = "و"
arabChar(27) = "ي"
Command2_Click
End Sub


Private Sub Command2_Click()
For i = 0 To 27
For J = 0 To 27
For k = 0 To 27
lst.AddItem arabChar(i) & " " & arabChar(J) & " " & arabChar(k)
ProgressBar1.Max = 22000
ProgressBar1.Value = ProgressBar1.Value + 1
If ProgressBar1.Value = ProgressBar1.Max Then Exit Sub
Next k
Next J
Next i

Command3.Enabled = True
End Sub

التوليد للحروف كلها من ثلاث خانات فقط

اقتباس
أ-أ-أ

أ-أ-ب

أ-أ-ت

أ-أ-ث

أ-أ-ج

أ-أ-ح

أ-أ-خ

أ-أ-ق

ولكن المشكلة أنها في لست مما يسبب في بطئ التنفيد لان العدد 22000 حالة

كيف استطيع توليد تلقائي عن طريق الزر عن طريق الدالة

RND

	Text2.Text = Round((Rnd * 21951), 0)

عند كل ضغطة يقوم بتوليد الثلاثة الحروف فقط دون الحاجة الى 22000 حالة

#2

إليك الطريقة وطبقها بالتفصيل وستنجح إن شاء الله :

أكتب الكود التالي في أعلى النموذج ( في منطقة تصريح المتغيرات العامة ) :

Dim arabchar(28) As String

ثم أكتب الكود التالي في حدث تحميل النموذج ( وهو كودك الخاص بالحروف ) :

arabChar(0) = "أ"
arabChar(1) = "ب"
arabChar(2) = "ت"
arabChar(3) = "ث"
arabChar(4) = "ج"
arabChar(5) = "ح"
arabChar(6) = "خ"
arabChar(7) = "د"
arabChar(8) = "ذ"
arabChar(9) = "ر"
arabChar(10) = "ز"
arabChar(11) = "س"
arabChar(12) = "ش"
arabChar(13) = "ص"
arabChar(14) = "ض"
arabChar(15) = "ط"
arabChar(16) = "ظ"
arabChar(17) = "ع"
arabChar(18) = "غ"
arabChar(19) = "ف"
arabChar(20) = "ق"
arabChar(21) = "ك"
arabChar(22) = "ل"
arabChar(23) = "م"
arabChar(24) = "ن"
arabChar(25) = "ه"
arabChar(26) = "و"
arabChar(27) = "ي"

ثم في زر أمر أو في أي مكان تريد أن تظهر فيه الثلاث أحرف أكتب الكود التالي :

Dim value1, value2, value3, upperbound, lowerbound As Integer
upperbound = 27
lowerbound = 0
value1 = CInt(Int((upperbound - lowerbound + 1) * Rnd() + lowerbound))
value2 = CInt(Int((upperbound - lowerbound + 1) * Rnd() + lowerbound))
value3 = CInt(Int((upperbound - lowerbound + 1) * Rnd() + lowerbound))
MsgBox (arabchar(value1) & " " & arabchar(value2) & " " & arabchar(value3))

أكتبها بالتفصيل وأعلمنا بالنتائج إن كانت نجحت أم لا .

حيث أني من فترة طويلة جداً لم أعد أستخدم الفيجوال بيسك .

42_47.gif
#4

Cint

هي دالة تحويل إلى النوع الرقمي integer وفي هذا المثال لا حاجة لها لأن جميع المتغيرات معلنة كأرقام من الأساس وهي مفيدة في حال كانت القيم مأخوذة من مربع نص .

int

هي دالة لحذف الجزء علي يمين الفاصلة العشرية من أي رقم حيث أن الدالة rnd تعيد قيمة عشرية ذا نقطة عائمة ونحن لا نحتاج إلى الجزء العشري هنا فمع هذه الدالة نحذف هذا الجزء .

أما كلاً من :

upperbound

lowerbound

فهما متغيرين رقميين مخزن بهما أقصى رقم وأدنى رقم في المجال المراد عدم الخروج عنه من قبل دالة rnd وفي مثالنا هما 27 و صفر .

علماُ أنك تستيطع إستبدال السطر

CInt(Int((upperbound - lowerbound + 1) * Rnd() + lowerbound))

بالسطر

Int(27 * Rnd)

وسينجز نفس العملية بالضبط .

أما دالة توليد الحروف فلا يوجد دالة وإنما الرقم الناتج عن الكود التالي :

CInt(Int((upperbound - lowerbound + 1) * Rnd() + lowerbound))

والذي يتم تخزينه في ثلاث متغيرات وهي value1 value2 value3 حيث يتم وضع هذه المتغيرات كفهارس لمصفوفة الحروف التي أنشأتها أنت بإسم arabchar

.

أرجوا أن أكون أوضحت .

تم تعديل هذه المشاركة بواسطة majed316 في 29 أكتوبر 2006 في 23:11

42_47.gif
#5

أخي الكريم ، لقد قلت في بداية موضوعك أنك :

اقتباس
ولكن المشكلة أنها في لست مما يسبب في بطئ التنفيد لان العدد 22000 حالة

كيف استطيع توليد تلقائي عن طريق الزر عن طريق الدالة RND

أخي الكريم .. لحل مشكلة بطء تنفيذ العد إلى 22000 في اللست ، قم بإخفاء اللست في بداية التنفيذ lst.Visible =False ثم أعد إظهاره بعد الانتهاء من التنفيذ

تم تعديل هذه المشاركة بواسطة شبه جسم في 30 أكتوبر 2006 في 00:08

يا نفسُ إن لم تصلحي

فتشبهي بالصالحينا

[ أبو العتاهية ]

هذا الموضوع مغلق.

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