تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
استخراج المكرر من ListBox
#11
السلام عليكم ورحمة الله وبركاته


عذرا أخي على التأخير
ولكني انشغلت


المهم بالنسبة للكود فالاختلاف في أن بعض الأسطر تبدأ بأحرف وهذه الأحرف لا تريد إشراكها في عملية البحث


وهي تقع في بداية المصفوفة...
فوضعنا شرط للتحقق ما إذا كان بداية السطر أحرف أم أرقام فإذا كان يبدأ بأرقام فسنتبع نفس الخطوات في مشاركتك السابقة أما إذا كان يبدأ بأحرف فسنقوم بتعريف مصفوفة جديدة مشتقة من المصفوفة الأولى نحذف فيها العنصر الأول منها والذي يحمل الأحرف الزائدة
فكتبنا السطر التالي


كود :
                   SplitText = SplitText.Skip(1).ToArray


وبعد ذلك سنتبع نفس الخطوات السابقة تماما وبدون أي اختلاف


وإليك الكود بالكامل استبدل به الكود الذي عندك

PHP كود :
Public Class Form1




    
Private Sub btnExit_Click(ByVal sender As System.ObjectByVal e As System.EventArgs_
        Handles btnExit
.Click
        End
    End Sub




    
Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs_
         Handles Button1
.Click
        
Try
            Me.ListBox3.Items.Clear()
            Dim ModifiedList As New List(Of String)
            For Me.ListBox1.Items.Count 1 To 0 Step -1
                Dim SplitText
() As String Me.ListBox1.Items.Item(I).split("-")
                SplitText(5) = 0  'هنا نلغي الجزء الخامس
                SplitText(7) = 0  '
هنا نلغي الجزء السابع
                SplitText
(9) = 0  'هنا نلغي الجزء التاسع
                '
ويتم التشييك بـ
                
'0 and 1 , 2 , 3 , 4 , 6 , 8
                '
وهذا الاجراء تمام
                Dim NewText 
As String String.Join("-"SplitText)
                If ModifiedList.IndexOf(NewText) > -1 Then
                    Me
.ListBox3.BackColor Color.YellowGreen
                    Me
.ListBox3.Items.Add(Me.ListBox1.Items.Item(I))
                    Me.ListBox1.Items.RemoveAt(I)
                End If
                ModifiedList.Add(NewText)
            Next




        
Catch ex As Exception




        End 
Try
    End Sub




    
Private Sub Button2_Click(ByVal sender As System.ObjectByVal e As System.EventArgs_
        Handles Button2
.Click
        
'في هذا الاجراء حاولت 
        '
فيما إذا كان بداية السطر احرف ولكن بائت بالفشل
        
' لمطلوب هنا إذا كان بداية السطر احرف وكان السطر مكرر طبعاً 
        '
حسب الشروط السابقة وتكرر في سطر آخر بدون أحرف يعتبر مكرر
        
' اي يتم التشييك بعد الارحف في حالة وجود احرف في بعض الاسطر




        Try
            Me.ListBox4.Items.Clear()
            Dim ModifiedList As New List(Of String)
            For I = Me.ListBox2.Items.Count - 1 To 0 Step -1
                Dim SplitText() As String = Me.ListBox2.Items.Item(I).Split("-")
                '
شرط التحق سيتحقق إذا كان السطر يبدأ بأحرف
                
If IsNumeric(SplitText(0)) = False Then
                    
'السطر لا يبدأ برقم وبالتالي
                    '
نعيد  تعريف المصفوفة
                    
'ونقوم بحذف العنصر الأول من المصفوفة
                    SplitText = SplitText.Skip(1).ToArray
                End If
                SplitText(5) = 0
                SplitText(7) = 0
                SplitText(9) = 0
                '
لا أدري من أين أتى هذا الرقم من العناصر
                
'لهذا قمت بإلغاء السطر التالي
                '
SplitText(11) = 0




                Dim NewText 
As String String.Join("-"SplitText)
                If ModifiedList.IndexOf(NewText) > -1 Then
                    Me
.ListBox4.BackColor Color.YellowGreen
                    Me
.ListBox4.Items.Add(Me.ListBox2.Items.Item(I))
                    Me.ListBox2.Items.RemoveAt(I)
                End If
                ModifiedList.Add(NewText)
            Next
        
Catch ex As Exception




        End 
Try
    End Sub
End 
Class 

بالتوفيق
الرد }}}
تم الشكر بواسطة: aftfm
#12
رحم الله والديك اخي العزيز sooriaty03
بقي الحالة الثالثة وهي التشييك بين ListBox1 , ListBox2
وبنفس الشروط
واخراج المكرر في ListBox3
الرد }}}
تم الشكر بواسطة:
#13
السلام عليكم ورحمة الله وبركاته

أخي تفضل هذا الكود

كود :
Public Class Form1
    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles btnExit.Click
        End
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
         Handles Button1.Click
        Compare(ListBox1, ListBox3)
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles Button2.Click
        Compare(ListBox2, ListBox4)
    End Sub
    Private Sub Compare(ByVal InitialListbox As ListBox, ByVal ResultListBox As ListBox)
        Try
            ResultListBox.Items.Clear()
            Dim ModifiedList As New List(Of String)
            For I = InitialListbox.Items.Count - 1 To 0 Step -1
                Dim SplitText() As String = InitialListbox.Items.Item(I).Split("-")
                'شرط التحق سيتحقق إذا كان السطر يبدأ بأحرف
                If IsNumeric(SplitText(0)) = False Then
                    'السطر لا يبدأ برقم وبالتالي
                    'نعيد  تعريف المصفوفة
                    'ونقوم بحذف العنصر الأول من المصفوفة
                    SplitText = SplitText.Skip(1).ToArray
                End If
                SplitText(5) = 0
                SplitText(7) = 0
                SplitText(9) = 0
                Dim NewText As String = String.Join("-", SplitText)
                If ModifiedList.IndexOf(NewText) > -1 Then
                    ResultListBox.BackColor = Color.YellowGreen
                    ResultListBox.Items.Add(InitialListbox.Items.Item(I))
                    InitialListbox.Items.RemoveAt(I)
                End If
                ModifiedList.Add(NewText)
            Next
        Catch ex As Exception

        End Try
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Try
            ListBox3.Items.Clear()
            Dim ModifiedList As New List(Of String)
            For I = ListBox1.Items.Count - 1 To 0 Step -1
                Dim SplitText() As String = ListBox1.Items.Item(I).Split("-")
                'شرط التحق سيتحقق إذا كان السطر يبدأ بأحرف
                If IsNumeric(SplitText(0)) = False Then
                    'السطر لا يبدأ برقم وبالتالي
                    'نعيد  تعريف المصفوفة
                    'ونقوم بحذف العنصر الأول من المصفوفة
                    SplitText = SplitText.Skip(1).ToArray
                End If
                SplitText(5) = 0
                SplitText(7) = 0
                SplitText(9) = 0
                Dim NewText As String = String.Join("-", SplitText)
                ModifiedList.Add(NewText)
            Next
            For I = ListBox2.Items.Count - 1 To 0 Step -1
                Dim SplitText() As String = ListBox2.Items.Item(I).Split("-")
                'شرط التحق سيتحقق إذا كان السطر يبدأ بأحرف
                If IsNumeric(SplitText(0)) = False Then
                    'السطر لا يبدأ برقم وبالتالي
                    'نعيد  تعريف المصفوفة
                    'ونقوم بحذف العنصر الأول من المصفوفة
                    SplitText = SplitText.Skip(1).ToArray
                End If
                SplitText(5) = 0
                SplitText(7) = 0
                SplitText(9) = 0
                Dim NewText As String = String.Join("-", SplitText)

                If ModifiedList.IndexOf(NewText) > -1 Then
                    ListBox3.BackColor = Color.YellowGreen
                    ListBox3.Items.Add(ListBox2.Items.Item(I))
                    ListBox2.Items.RemoveAt(I)
                End If
                ModifiedList.Add(NewText)
            Next
        Catch ex As Exception

        End Try
    End Sub
End Class
الرد }}}
تم الشكر بواسطة: aftfm
#14
اللهم ارزقه من حيث لا يحتسب
الف شكر 10%10
الرد }}}
تم الشكر بواسطة: sooriaty03



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


يقوم بقرائة الموضوع: