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

نسخة كاملة : التكرار في Listbox عن طريق Regex
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
الف شكر اخي العزيز sooriaty03

لكن بيظهر عندي خطأ في الكود عند ListBox1.Items.Item(I).Split
يظهر تحته خط ازرق وعند وضع المواس عليه تظهر الكتابة هذه

Option Strict On disallows Late binding

السلام عليكم ورحمة الله وبركاته




استبدل السطر بالتالي

PHP كود :
Dim SplitText As String() = ListBox1.Items(i).Split("-"





السلام عليكم ورحمة الله وبركاته
استبدلته ولا زالت المشكلة

في ListBox1.Items(I).Split

السلام عليكم ورحمة الله وبركاته





تفضل بعد التعديل

PHP كود :
Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        Dim ModifiedList 
As New List(Of String)
        For 
ListBox1.Items.Count 1 To 0 Step -1
            Dim SplitText
() As String ListBox1.Items(I).Split("-")
            
SplitText(5) = 0
            SplitText
(7) = 0
            SplitText
(9) = 0
            Dim NewText 
As String String.Join("-"SplitText)
            If 
ModifiedList.IndexOf(NewText) > -1 Then
                ListBox2
.Items.Add(ListBox1.Items.Item(I))
                
ListBox1.Items.RemoveAt(I)
            
End If
            
ModifiedList.Add(NewText)
        
Next
    End Sub 





السلام عليكم ورحمة الله وبركاته
نفس المشكلة اخي العزيز ابو رائد حفظك الله
اظاهر انه عند امر ناقص في البرنامج مثلا في import systim
او امر آخر
حتى في SplitText(5) = 0

طلب مني البرنامج تغييرها الى SplitText(5) = CStr(0)
نعم الف شكر للجميع هذا بعد التعديل


PHP كود :
Dim ModifiedList As New List(Of String)
        For 
ListBox1.Items.Count 1 To 0 Step -1
            Dim SplitText
() As String CStr(ListBox1.Items(I)).Split(CChar("-"))
            
SplitText(5) = CStr(0)
            
SplitText(7) = CStr(0)
            
SplitText(9) = CStr(0)
            
Dim NewText As String String.Join("-"SplitText)
            If 
ModifiedList.IndexOf(NewText) > -1 Then
                ListBox2
.Items.Add(ListBox1.Items.Item(I))
                
ListBox1.Items.RemoveAt(I)
            
End If
            
ModifiedList.Add(NewText)
        
Next 
السلام عليكم ورحمة الله وبركاته

اخي العزيز sooriaty03
وضعت

PHP كود :
SplitText(5) = CStr(0)
            
SplitText(7) = CStr(0)
            
SplitText(9) = CStr(0

في الكود لماذا بدأت من 5 وليس من 1

ولو حبيت اغير مثلا التكرار يكون الاجزء الاول والثاني والرابع والخامس والسابع والتاسع كيف ستكون
مع العلم اني جربت

PHP كود :
SplitText(1) = CStr(0)
            
SplitText(2) = CStr(0)
            
SplitText(4) = CStr(0)
            
SplitText(5) = CStr(0)
            
SplitText(7) = CStr(0)
            
SplitText(9) = CStr(0

فلم يعطني نتائج صحيحة
ممكن تشرح الكود
السلام عليكم ورحمة الله وبركاته
أخي الكريم إليك شرح الأكواد
الجمل التي تريد المقارنة بينهم تتألف من تسعة أجزاء تفصل بينهم علامة (-) وبعض هذه الأجزاء يؤثر في المقارنة والبعض الآخر لا يؤثر
وبناء على توضيحك فالأجزاء التي تؤثر في المقارنة هي الملونة بالأحمر
كود :
[color=#ff0000][FONT=monospace]101[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]2012[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]04[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]07[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]0008[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#0000BB][FONT=monospace]212[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]7896[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#0000BB][FONT=monospace]p[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]85215[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][COLOR=#0000BB][FONT=monospace]gg1
[/FONT][/COLOR][color=#ff0000][FONT=monospace]101[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]2012[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]04[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]07[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]0008[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#0000BB][FONT=monospace]212[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]7896[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#0000BB][FONT=monospace]p[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]85214[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][COLOR=#0000BB][FONT=monospace]gg1
[/FONT][/COLOR][color=#ff0000][FONT=monospace]101[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]2012[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]04[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]07[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]0008[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#0000BB][FONT=monospace]213[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]7896[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#0000BB][FONT=monospace]p[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]85215[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#0000BB][FONT=monospace]gg1 [/FONT][/color]
بينما الأجزاء التي باللون الأزرق لا تؤثر بمعنى أننا سنتجاهلها
حسنا كيف تجاهلناها؟
قمنا بعمل فصل للسطر على أساس هذه العلامة (-)
فنتج عنها مصفوفة مكونة من تسعة عناصر هي للسطر الأول ستكون كالتالي:
كود :
SplitText(0) = "[color=#ff0000]101[/color]"
            SplitText(1) = "[color=#ff0000]2012[/color]"
            SplitText(2) = "[color=#ff0000]04[/color]"
            SplitText(3) = "[color=#ff0000]07[/color]"
            SplitText(4) = "[color=#ff0000]0008[/color]"
            SplitText(5) = "[color=#0000ff]212[/color]"
            SplitText(6) = "[color=#ff0000]7896[/color]"
            SplitText(7) = "[color=#0000ff]p[/color]"
            SplitText(8) = "[color=#ff0000]85215[/color]"
            SplitText(9) = "[color=#0000ff]gg1[/color]"
أي أن العناصر التي نريد أن نتجاهلها هي العناصر التي تحمل الأرقام (5،7،9)
فكان أفضل طريقة لتجاهلها هي إسنادها إلى قيم متساوية وهنا اخترتها أن تكون (0) وتستطيع تغييرها إلى ما تشاء فلن يؤثر ذلك في عمل البرنامج المهم أن تكون متساوية
أما عن موضوع الخطأ الذي ظهر لك هنا هو لأن الخاصية التالية مفعلة لديك
كود :
Option Strict On
ووظيفة هذا الأمر هو السماح للبرنامج من تحويل المتغيرات من النطاق الضيق إلى الأوسع والعكس ممنوع تماما وتستطيع إلغاء الأمر عن طريق خيارات المشروع أو كتابة الأمر التالي في أول سطر في الفورم
كود :
Option Strict Off
بعد ذلك قمنا بتجميع الأجزاء مرة أخرى وإسنادها إلى متغير أسميناه NewText
الآن قمنا بتعريف متغير من النوع ((List(Of String) والهدف منها هو البحث عن الجمل المكررة فإذا كانت الجملة موجودة سابقا في القائمة إذن هناك تكرار نقوم عندها بإضافة الجملة الأصلية إلى ListBox2 وحذفها من ListBox1
وهو المطلوب

بالتوفيق

السلام عليكم ورحمة الله وبركاته



sooriaty03 كتب :السلام عليكم ورحمة الله وبركاته
أخي الكريم إليك شرح ألكواد
الجمل التي تريد المقارنة بينهم تتألف من تسعة أجزاء تفصل بينهم علامة (-) وبعض هذه الأجزاء يؤثر في المقارنة والبعض الآخر لا يؤثر
وبناء على توضيحك فالأجزاء التي تؤثر في المقارنة هي الملونة بالأحمر
كود :
[color=#ff0000][FONT=monospace]101[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]2012[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]04[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]07[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]0008[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#0000BB][FONT=monospace]212[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]7896[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#0000BB][FONT=monospace]p[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]85215[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][COLOR=#0000BB][FONT=monospace]gg1
[/FONT][/COLOR][color=#ff0000][FONT=monospace]101[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]2012[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]04[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]07[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]0008[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#0000BB][FONT=monospace]212[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]7896[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#0000BB][FONT=monospace]p[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]85214[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][COLOR=#0000BB][FONT=monospace]gg1
[/FONT][/COLOR][color=#ff0000][FONT=monospace]101[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]2012[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]04[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]07[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]0008[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#0000BB][FONT=monospace]213[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]7896[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#0000BB][FONT=monospace]p[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#ff0000][FONT=monospace]85215[/FONT][/color][color=#007700][FONT=monospace]-[/FONT][/color][color=#0000BB][FONT=monospace]gg1 [/FONT][/color]
بينما الأجزاء التي باللون الأزرق لا تؤثر بمعنى أننا سنتجاهلها
حسنا كيف تجاهلناها؟
قمنا بعمل فصل للسطر على أساس هذه العلامة (-)
فنتج عنها مصفوفة مكونة من تسعة عناصر هي للسطر الأول ستكون كالتالي:
كود :
SplitText(0) = "[color=#ff0000]101[/color]"
            SplitText(1) = "[color=#ff0000]2012[/color]"
            SplitText(2) = "[color=#ff0000]04[/color]"
            SplitText(3) = "[color=#ff0000]07[/color]"
            SplitText(4) = "[color=#ff0000]0008[/color]"
            SplitText(5) = "[color=#0000ff]212[/color]"
            SplitText(6) = "[color=#ff0000]7896[/color]"
            SplitText(7) = "[color=#0000ff]p[/color]"
            SplitText(8) = "[color=#ff0000]85215[/color]"
            SplitText(9) = "[color=#0000ff]gg1[/color]"
أي أن العناصر التي نريد أن نتجاهلها هي العناصر التي تحمل الأرقام (5،7،9)
فكان أفضل طريقة لتجاهلها هي إسنادها إلى قيم متساوية وهنا اخترتها أن تكون (0) وتستطيع تغييرها إلى ما تشاء فلن يؤثر ذلك في عمل البرنامج المهم أن تكون متساوية
أما عن موضوع الخطأ الذي ظهر لك هنا هو لأن الخاصية التالية مفعلة لديك
كود :
Option Strict On
ووظيفة هذا الأمر هو السماح للبرنامج من تحويل المتغيرات من النطاق الضيق إلى الأوسع والعكس ممنوع تماما وتستطيع إلغاء الأمر عن طريق خيارات المشروع أو كتابة الأمر التالي في أول سطر في الفورم
كود :
Option Strict Off
بعد ذلك قمنا بتجميع الأجزاء مرة أخرى وإسنادها إلى متغير أسميناه NewText
الآن قمنا بتعريف متغير من النوع ((List(Of String) والهدف منها هو البحث عن الجمل المكررة فإذا كانت الجملة موجودة سابقا في القائمة إذن هناك تكرار نقوم عندها بإضافة الجملة الأصلية إلى ListBox2 وحذفها من ListBox1
وهو المطلوب

بالتوفيق




ما شاء الله فكرة وشرح رائع





السلام عليكم ورحمة الله وبركاته
الصفحات : 1 2 3