تقييم الموضوع :
  • 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 ك ب / التحميلات : 6)
الرد }}}}
تم الشكر بواسطة:
#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
سيتجاوز من الصفر الى العشرة دون طباعة وسيطبع من احدى عشر الى تسع واربعين فقط وسيتجاهل من واحد وخمسين الى مئة
وكل ما قدمناه احتمالات فقط وبيس الحل لمشكلتك فحل المشكلة يبدأ من ايضاحك السليم عنها
بالتوفيق استاذ اسلام
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 رَبِّ اغْفِرْ لِي وَلِوَالِدَيَّ
Heart
الرد }}}}
تم الشكر بواسطة: 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
و مدة التنفيذ هى نفس مدة الأكواد السابقة تقريبآ
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مساعدة في تطبيق هذا الكود bidaya 0 40 06-12-16, 04:46 AM
آخر رد: bidaya
  [vb6.0] الكود باستخدام فيجوال بيسك6 تالين الورفلي 2 96 23-10-16, 10:38 AM
آخر رد: Ashraf Elafify
  اريد تعديل هذا الكود للبحث لاى كلمه فى النص رجل الكهرباء 2 123 03-10-16, 02:19 AM
آخر رد: رجل الكهرباء
Shocked [مثال] ربط قاعدة بيانات محمية في تقرير كرستال عن طريق الكود ياسر عبد الكريم 2 116 26-09-16, 11:54 PM
آخر رد: ياسر عبد الكريم
  [vb6.0] طلب تعديل على برنامج iisys 21 607 23-09-16, 03:03 PM
آخر رد: iisys
  تعديل على كود استدعاء بيانات محددة من ثلاث جداول مصمم هاوي 10 291 16-09-16, 08:33 PM
آخر رد: Amir_alzubidy
  الاخوة الكرام نرجو المساعدة فى تعديل المرفق gadr 13 428 21-08-16, 04:50 PM
آخر رد: gadr
  [سؤال] ما هو الخطاء في هذا الكود allobaed 4 148 11-08-16, 06:04 PM
آخر رد: allobaed
  تعديل على كود بسيط في list mohfar 0 118 14-07-16, 11:18 PM
آخر رد: mohfar
  احتاج الى الكود لتحويل الارقام الى حروف hicham716 10 442 07-07-16, 09:29 PM
آخر رد: hicham716

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


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