منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
التكرار في Listbox عن طريق Regex - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : التكرار في Listbox عن طريق Regex (/showthread.php?tid=7981)

الصفحات: 1 2 3


التكرار في Listbox عن طريق Regex - aftfm - 20-03-13

الف شكر اخي العزيز sooriaty03

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

Option Strict On disallows Late binding


التكرار في Listbox عن طريق Regex - @@أبورائد@@ - 20-03-13


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




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

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





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



التكرار في Listbox عن طريق Regex - aftfm - 20-03-13

استبدلته ولا زالت المشكلة

في ListBox1.Items(I).Split


التكرار في Listbox عن طريق Regex - @@أبورائد@@ - 20-03-13


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





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

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 





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



التكرار في Listbox عن طريق Regex - aftfm - 20-03-13

نفس المشكلة اخي العزيز ابو رائد حفظك الله
اظاهر انه عند امر ناقص في البرنامج مثلا في import systim
او امر آخر


التكرار في Listbox عن طريق Regex - aftfm - 20-03-13

حتى في SplitText(5) = 0

طلب مني البرنامج تغييرها الى SplitText(5) = CStr(0)


التكرار في Listbox عن طريق Regex - aftfm - 20-03-13

نعم الف شكر للجميع هذا بعد التعديل


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 



التكرار في Listbox عن طريق Regex - aftfm - 21-03-13

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

اخي العزيز 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

فلم يعطني نتائج صحيحة
ممكن تشرح الكود


التكرار في Listbox عن طريق Regex - sooriaty03 - 21-03-13

السلام عليكم ورحمة الله وبركاته
أخي الكريم إليك شرح الأكواد
الجمل التي تريد المقارنة بينهم تتألف من تسعة أجزاء تفصل بينهم علامة (-) وبعض هذه الأجزاء يؤثر في المقارنة والبعض الآخر لا يؤثر
وبناء على توضيحك فالأجزاء التي تؤثر في المقارنة هي الملونة بالأحمر
كود :
[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
وهو المطلوب

بالتوفيق


التكرار في Listbox عن طريق Regex - @@أبورائد@@ - 21-03-13


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



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
وهو المطلوب

بالتوفيق




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





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