تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تعديل هذا الكود
#1
كتبت هذا الكود
كود :
Private Sub Command1_Click()

For I = 1 To NNUM
      VV(I) = Text1(I).Text
      If VV(I) > 50 Then GoTo 100
      NNN = VV(I)
      If NNN = 10 Then GoTo 10
      If NNN = 20 Then GoTo 20
      If NNN = 30 Then GoTo 30
      If NNN = 40 Then GoTo 40
      If NNN = 50 Then GoTo 50
100 Next I

10  Rem"هنا نكتب كود اللازم عندما تكون NNN=10"
     
      GoTo 200
20  Rem"هنا نكتب كود اللازم عندما تكون NNN=20"
     
      GoTo 200
30  Rem"هنا نكتب كود اللازم عندما تكون NNN=30"
     
      GoTo 200
40  Rem"هنا نكتب كود اللازم عندما تكون NNN=40"
     
      GoTo 200
50  Rem"هنا نكتب كود اللازم عندما تكون NNN=50"

200  End Sub

وطبعآ يمكن استبدال الجمل الشرطيةالخمسةالمتتالية باستخدام Select Case  بدلآ من IF  هكذا
كود :
    Select Case NNN
       Case "10": GoTo 10
       Case "20": GoTo 20
       Case "30": GoTo 30
       Case "40": GoTo 40
       Case "50": GoTo 50
    End Select

وأريد كودآ أسهل من ذلك بحيث لا يمرالبرنامج كل مرة(مع كل قيمة لل I أثناء تنفيذ اللوب) على هذه الجمل الخمسة أوعلى بعضها حتى يتحقق الشرط
كيف يمكن مثلآ  أن نجعل متغير يعبرعن رقم الجملة التى سنتوجه اليها
فتكتب هذه الجمل الخمسة جملة واحدة بدون أى شرط (GoTo  NNN)
 أى يكون اللوب هكذا
كود :
       For I = 1 To NNUM
VV(I) = Text1(I).Text
       If VV(I) > 50 Then GoTo 100
       NNN = VV(I)
       GoTo NNN
NEXT I 100

ولكم ألف شكر
الرد }}}
تم الشكر بواسطة:
#2
ملحوظة هامة
طبعآ من الممكن الاستغناء نهائيآ عن أرقام هذه الجمل وتنفيذ جواب الشرط فى نفس مكان الشرط هكذا مثلآ
     

كود :
If NNN = 10 Then
      Rem"هنا نكتب كود اللازم عندما تكون NNN=10"    
      End If
وبالمثل مع باقى الجمل 20 و 30 و 40 و 50

ولكنى لا أريدها هكذا لأن هذا الكود اللازم عندما تكون NNN=10 طويل وسأحتاجه فى أكثر من موضع فلا داعى لاعادة كتابته فى كل موضع مرة وانما كلما احتجناه توجهنا لجملة معينة GO TO 10 فنجده مكتوبآ هناك
وبالمثل مع باقى الجمل 20 و 30 و 40 و 50
الرد }}}
تم الشكر بواسطة:
#3
أهلا أخي الكريم , جرب هذه الطريقة :

كود :
Private Sub Command1_Click()

Dim NNUM As Integer
Dim VV As Integer

NNUM = 5

For I = 1 To NNUM
    VV = Val(Trim$(Text1(I).Text))
    If VV <= 50 Then
       Codes VV
       If VV = 1 Then Exit Sub
    End If
Next I

End Sub

Private Sub Codes(CodeID As Integer)

If CodeID = 10 Then

Rem"هنا نكتب كود اللازم عندما تكون NNN=10"
    
ElseIf CodeID = 20 Then
    
Rem"هنا نكتب كود اللازم عندما تكون NNN=20"
      
ElseIf CodeID = 30 Then
      
Rem"هنا نكتب كود اللازم عندما تكون NNN=30"
      
ElseIf CodeID = 40 Then

Rem"هنا نكتب كود اللازم عندما تكون NNN=40"
      
ElseIf CodeID = 50 Then

Rem"هنا نكتب كود اللازم عندما تكون NNN=50"

End If

If CodeID = 10 Or CodeID = 20 Or CodeID = 30 Or CodeID = 40 Or CodeID = 50 Then
   CodeID = 1
Else
   CodeID = 0
End If

End Sub
الرد }}}
تم الشكر بواسطة: أبو عمر , Microformt , Microformt , Amir_Alzubidy
#4
جزاك الله خيرآ

ولكن هذا الكود كود شبيه بالذى كتبته ومازالت نفس المشكلة موجودة كما هى

وهى أن البرنامج يمر كل مرة على هذه الجمل الخمسة (أوعلى بعضها حتى يتحقق الشرط)

ففى كودى يمر كل مرة(مع كل قيمة لل I أثناء تنفيذ اللوب) على جمل IF الخمسة  أوعلى جمل Case الخمسة

وفى كودك يمر كل مرة(كلما توجهنا لل Codes مع كل قيمة لل I أثناء تنفيذ اللوب) على جمل ElseIf الخمسة

وهذا المرفق يحسب مدة التنفيذ يثبت صحة كلامى

ففى جميع الأكواد تجد مدة التنفيذ واحدة تقريبآ



الملفات المرفقة
.rar   New Folder.rar (الحجم : 2.37 ك ب / التحميلات : 31)
الرد }}}
تم الشكر بواسطة:
#5
ربما لو توضح اكثر ايش اللي انت تبغاه بالضبط
تجد المساعد بشكل اوضح
في اي جملة لوب فالاجراء يمر على كل العنصر مالم تحدده باستناء مثلا
for i = 0 to 100
next i
سيعد معك للمئة
But
for i = 0 to 10
if i >=10 then exit for
next
هنا ستوقف عند الرقم عشرة
اذا حابب اللوب يتجاوز عن قيم معينة
for i = 0 to 100
if i <=10 or i>=50 then
else
print i
next
سيتجاوز من الصفر الى العشرة دون طباعة وسيطبع من احدى عشر الى تسع واربعين فقط وسيتجاهل من واحد وخمسين الى مئة
وكل ما قدمناه احتمالات فقط وبيس الحل لمشكلتك فحل المشكلة يبدأ من ايضاحك السليم عنها
بالتوفيق استاذ اسلام
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
تم الشكر بواسطة: Ahmed_Mansoor
#6
اللي انا  أبغاه بالضبط هو كما ذكرت فى البداية

إقتباس :وأريد كودآ أسهل من ذلك بحيث لا يمرالبرنامج كل مرة(مع كل قيمة لل I أثناء تنفيذ اللوب) على هذه الجمل الخمسة أوعلى بعضها حتى يتحقق الشرط
كيف يمكن مثلآ  أن نجعل متغير يعبرعن رقم الجملة التى سنتوجه اليها فتكتب هذه الجمل الخمسة جملة واحدة بدون أى شرط (GoTo  NNN)
فسؤالى لاعلاقة له باللوب وانما سؤالى عن جمل IF الخمسة  الموجودة داخله
الرد }}}
تم الشكر بواسطة:
#7
مازالت هناك خمسة جمل متتالية نمر عليهم فى كل مرة
If NNN = 10 Then Call sub10
If NNN = 20 Then Call sub20
If NNN = 30 Then Call sub30
If NNN = 40 Then Call sub40
If NNN = 50 Then Call sub50
و مدة التنفيذ هى نفس مدة الأكواد السابقة تقريبآ
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تعديل بيانات عمود DataGridView دفعة واحدة مصمم هاوي 0 73 05-03-24, 02:40 PM
آخر رد: مصمم هاوي
  اختصار الكود حسب المثال المرفق abde6726 2 281 29-10-23, 11:00 AM
آخر رد: abde6726
  اختصار الكود حسب المثال المرفق abde6726 0 220 28-10-23, 05:01 PM
آخر رد: abde6726
Question [vb6.0] عندي مشكلة في هذا الكود حيث انه لا يقبل الا رقم فقط اريد ان يقبل الارقام والاحرف ؟ Microformt 1 269 25-10-23, 04:10 PM
آخر رد: Amir_Alzubidy
  (تم التعديل) تعديل كود حذف بيانات طالب مصمم هاوي 3 1,228 12-10-22, 07:36 PM
آخر رد: مصمم هاوي
  تعديل على كود استدعاء بيانات محددة من ثلاث جداول مصمم هاوي 11 5,197 14-09-22, 11:49 PM
آخر رد: رضوان الجماعي
  تعديل ترتيب أرقام الصفحات تصاعدياً مصمم هاوي 3 845 13-07-22, 03:20 AM
آخر رد: مصمم هاوي
  تعديل كود نهى علي 2 759 13-05-22, 12:01 AM
آخر رد: نهى علي
  تعديل على كود المجموع مصمم هاوي 0 750 03-03-22, 08:46 PM
آخر رد: مصمم هاوي
  تعديل كود الدرجات المحصورة بين عددين مصمم هاوي 7 1,428 10-12-21, 07:10 PM
آخر رد: مصمم هاوي

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم