تقييم الموضوع :
  • 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 ك ب / التحميلات : 15)
الرد }}}}
تم الشكر بواسطة:
#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
و مدة التنفيذ هى نفس مدة الأكواد السابقة تقريبآ
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ظهور الخط العربي بخط غريب داخل شاشة الكود للفيجوال بيسك في الوندوز 10 allobaed 2 101 08-08-17, 03:09 AM
آخر رد: allobaed
  تعديل كود إعادة الترقيم بعد الحذف مصمم هاوي 2 190 03-07-17, 12:29 PM
آخر رد: أبوبكر سويدان
  هل من الممكن تعديل بيانات عدد من السجلات في الجدول دفعة واحدة كنونو 7 385 21-06-17, 02:51 PM
آخر رد: awidan76
  [vb6.0] ما هي جملة الكود لعرض ازرار الرسائل بالعربية larbihamri 6 202 26-05-17, 12:15 PM
آخر رد: larbihamri
  [vb6.0] مساعدة في تعديل هاذا المثال Abdellah 5 333 20-04-17, 05:38 PM
آخر رد: Abdellah
  [ تمّ الحل ] : تعديل كلمة المرور عبد العزيز البسكري 8 361 08-04-17, 09:33 PM
آخر رد: larbihamri
Question [vb6.0] ماهوا الكود الذي يجعل Text في منصتف الفوم مهما كان حجم الفورم ؟ Microformt 1 186 04-03-17, 11:36 AM
آخر رد: Amir_alzubidy
  كيفية تعديل مواصفات حقل فى جدول abosara 0 184 21-02-17, 04:23 AM
آخر رد: abosara
  خطاء ارجو تصحيح الكود عمر سالم 5 313 10-02-17, 06:18 PM
آخر رد: sendbad100
  اريد مجموعة سعر الكمية امباعة بتاريخ محدد في هذا الكود عمر سالم 5 406 31-01-17, 01:18 PM
آخر رد: ahmedabdelaliem

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


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