منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ممكن ايضاح اكثر لـ continu for
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله و بركاته
اذا لدين االشرط التالي:
كود :
If unods.Count < contents.Count Then Continue For
هل يعني انه يتخطى كل جسم for حتى لو يوجد جمل بعدها؟
كود :
for i = 0 to 100
if not then continu for
maybe yes maybe not
other things
other things

next
أعتقد معناه أنه إذا تحقق الشرط ؛ فإنه سوف يتم إيقاف حلقة For
أما إذا لم يتحقق الشرط فإنه سيتم مواصلة حلقة For حتى النهاية ، وهي 100
(04-11-25, 01:26 AM)أبو خالد الشكري كتب : [ -> ]أعتقد معناه أنه إذا تحقق الشرط ؛ فإنه سوف يتم إيقاف حلقة For
أما إذا لم يتحقق الشرط فإنه سيتم مواصلة حلقة For حتى النهاية ، وهي 100

هذا يعني هذا الاشتراط خاطيء فلابد من استبداله بـ
كود :
for ***
if a=b then
anything
end if
other
other
next
بارك الله فيك وشكر لك.
(04-11-25, 01:42 AM)justforit كتب : [ -> ]هذا يعني هذا الاشتراط خاطيء فلابد من استبداله بـ
كود :
for ***
if a=b then
anything
end if
other
other
next

مرحبا بك
قد تكون الطريقة الصحيحة في بناء الكود كما يلي (على سبيل المثال) :


كود :
Dim a, b
       For i = 0 To 100
           If a = b Then
               textbox1.text = "OK"
               Exit For
           Else
               TextBox1.Text = "No"
           End If
       Next
السلام عليكم ورحمة الله وبركاته

(Continue For)  تعني تجاوز كل ما بعد هذا الكود و انتقل للدوران التالي ..
مثلا تريد أن تستخرج الأرقام الفردية من مجموعة أرقام مابين 1 إلى 10 فتكتب الكود :

PHP كود :
       For i 1 To 10
            If i Mod 2 
0 Then Continue For

 
           ListBox1.Items.Add(i)
 
       Next 

نفس الكود السابق فيك تكتبه بطريقة أخرى بدون الحاجة لاستخدامها :
PHP كود :
For 1 To 10
    If i Mod 2 
<> 0 Then
        ListBox1
.Items.Add(i)
 
   End If
Next 

لكن إن كان هناك أكثر من بلوك في الحلقة فيبدوا استخدام الـ (Continue For)  أكثر تنظيما من الحاجة لفتح وإغلاق عبارة (If --> End If)
حفظكم ا لله جميعا وبارك فيكم
سبحان الله عملت مثال مصغر لكي تتضح الاشكالية لكن لا ادري هل عرفت الحل ام لا
المثال مرفق اختبار رابط واحد وهو يخص عدد النودز في الصفحة و آخر مشاركة المشارك لا يساوي من قبله من حيث عنوان الوصول الى خاصية الـInnertext لاسمه.
فلا  ادري هل ستقع اخطاء ان انا نقلته الى المشروع الرئيسي
و من لا يود تحميل المثال البسيط التالي الكلاس كامل:
كود :
Imports System.Threading
Public Class Form1
   Dim th As Thread
   Dim doc As New HtmlAgilityPack.HtmlDocument
   Sub get_nods(url As String)
       Dim html As String = IO.File.ReadAllText(url)
       doc.LoadHtml(html)
       Dim posts As HtmlAgilityPack.HtmlNodeCollection = doc.DocumentNode.SelectNodes("//div[@class='post classic ']")
       Dim post As HtmlAgilityPack.HtmlNode = Nothing
       Dim userinfo As HtmlAgilityPack.HtmlNode = Nothing
       Dim attachs As HtmlAgilityPack.HtmlNodeCollection = Nothing
       Dim x As Integer
       ProgressBar1.Invoke(Sub() ProgressBar1.Maximum = posts.Count - 1)
       For x = 0 To posts.Count - 1
           Label1.Invoke(Sub() Label1.Text = "")
           Label2.Invoke(Sub() Label2.Text = "")
           Label3.Invoke(Sub() Label3.Text = "")
           ProgressBar1.Invoke(Sub() ProgressBar1.Value = x)
           userinfo = posts(x).SelectNodes("//div[@class='author_information']")(x)
           post = posts(x).SelectNodes("//div[@class='post_body scaleimages']")(x)
           If Not IsNothing(posts(x).SelectNodes("//fieldset//a[@class='attachembed']")) Then
               attachs = posts(x).SelectNodes("//fieldset//a[@class='attachembed']")
           End If
           Label1.Invoke(Sub() Label1.Text = "Main_Post: " & vbNewLine & userinfo.InnerText)
           Label2.Invoke(Sub() Label2.Text = "Main_Post: " & vbNewLine & post.InnerText)
           If Not IsNothing(attachs) Then
               Label3.Invoke(Sub() Label3.Text = "Main_Post: " & vbNewLine & "Attachs Count: " & attachs.Count)
           Else
               Label3.Invoke(Sub() Label3.Text = "Main_Post: " & vbNewLine & "Attachs Count: 0")
           End If
           Thread.Sleep(2500)
       Next
       Button1.Invoke(Sub() Button1.Enabled = True)
   End Sub
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Dim url As String = "E:/vb4arb/thread-10000.html"
       th = New Thread(AddressOf get_nods)
       Button1.Enabled = False
       Label1.Text = "بدأ"
       th.Start(url)
   End Sub
End Class
الكود الاول اللذي استخدمه للوصول لاسم العضو او المستخدم:
كود :
"//div[@class='post_author scaleimages']//div[2]//a"
فهل الكود الجديد في هذه المشاركة هو الافضل ام لا؟
على كل حال ساجرب باذن الله 
 انا احتاج وقت طويل لكي اعرف الخطأ.
اسف على الاطالة
حفظكم الله تعالى