منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] حذف المكرر من ليست فيو - نسخة قابلة للطباعة

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



حذف المكرر من ليست فيو - الماجيك مسعد - 06-11-18

السلام عليكم
عندي ليست فيو
وفيها عناصر متكررة
في عنصر مكرر مرة واحدة وفي عنصر مكرر اكتر من 10 مرات

عايز اعمل شرط انه يحذف المكرر اكتر من 5 مرات

ممكن تعديل الكود

كود :
Dim lstView As ListView = glist
        Dim itemI As ListViewItem
        Dim itemJ As ListViewItem
        Dim progress As Integer
        Dim count As Integer
        Dim x As Integer = 1
        Dim ProgressDupCounter As Integer = lstView.Items.Count
        lstView.Invoke(Sub()
                           For i As Integer = lstView.Items.Count - 1 To 0 Step -1
                               itemI = lstView.Items(i)
                               progress = progress + 1
                               Dim num As Integer = InputBox("لو عايز تمسح الارقام المكررة مثلا الرقم مكرر 3 مرات
يبقا تكتب 3
ولو عايز تمسحه لو مكرر مرة واحدة
هتكتب 1", "Enter Number number You Want To clear", "1", "4", "5")


                               For z As Integer = i + 1 To lstView.Items.Count - 1 Step 1
                                   itemJ = lstView.Items(z)
                                   If itemI.SubItems(6).Text = itemJ.SubItems(6).Text Then 'duplicate found, now delete duplicate
                                       count = count + 1
                                       If count = num Then
                                           lstView.Items.Remove(itemJ)
                                           count = 0
                                           Exit For
                                       End If
                                   End If
                               Next z
                           Next (i)
                       End Sub)



RE: حذف المكرر من ليست فيو - ﺣﺮﯾﻒ ﺑﺮﻣﺠﺔ - 06-11-18

(06-11-18, 05:04 PM)الماجيك مسعد كتب : السلام عليكم
عندي ليست فيو
وفيها عناصر متكررة

في عنصر مكرر مرة واحدة وفي عنصر مكرر اكتر من 10 مرات

عايز اعمل شرط انه يحذف المكرر اكتر من 5 مرات


وعليكم السلام

مشاركتي حسب الجزء المقتبس باللون الأحمر

جرب الكود التالي في زر بوتون فإذا ناسبك استغله بما تراه مناسب
PHP كود :
       REM تجميع لأكبر من 5 مرات
        Dim itemGroups 
From itm As ListViewItem In glist.Items _
                         Group itm By key 
itm.SubItems(6).Text Into Group _
                         Where Group
.Count() > 5 _
                         Select text 
keycount Group.Count

        REM حذف
        For Each g In itemGroups
            For Each itm In glist
.Items
                If itm
.SubItems(6).Text g.text Then glist.Items.Remove(itm)
 
           Next
        Next 



RE: حذف المكرر من ليست فيو - الماجيك مسعد - 07-11-18

(06-11-18, 08:22 PM)ﺣﺮﯾﻒ ﺑﺮﻣﺠﺔ كتب :
(06-11-18, 05:04 PM)الماجيك مسعد كتب : السلام عليكم
عندي ليست فيو
وفيها عناصر متكررة

في عنصر مكرر مرة واحدة وفي عنصر مكرر اكتر من 10 مرات

عايز اعمل شرط انه يحذف المكرر اكتر من 5 مرات


وعليكم السلام

مشاركتي حسب الجزء المقتبس باللون الأحمر

جرب الكود التالي في زر بوتون فإذا ناسبك استغله بما تراه مناسب
PHP كود :
       REM تجميع لأكبر من 5 مرات
        Dim itemGroups 
From itm As ListViewItem In glist.Items _
                         Group itm By key 
itm.SubItems(6).Text Into Group _
                         Where Group
.Count() > 5 _
                         Select text 
keycount Group.Count

        REM حذف
        For Each g In itemGroups
            For Each itm In glist
.Items
                If itm
.SubItems(6).Text g.text Then glist.Items.Remove(itm)
 
           Next
        Next 

اشكرك ولكن ظهر خطأ في كلمة count

الخطأ
Severity Code Description Project File Line Suppression State
Error BC30978 Range variable 'count' hides a variable in an enclosing block or a range variable previously defined in the query expression.


RE: حذف المكرر من ليست فيو - الماجيك مسعد - 07-11-18

(07-11-18, 07:46 AM)rmnr كتب : أعتقد عندك متغير آخر باسم count، قم بتغيير احدهم

بانتظار صاحب الكود
لاني اعتقد لو كان متغير كان كتبه في الكود لاني معرفش count متغير ايه ولا خاص بايه
لاني لم اكتب اكواد بهذا الشكل من قبل Big Grin هذه اكواد المحترفين الواحد بيشوف الكود بتاعهم بيحس نفسه حمار مش فاهم حاجة Big Grin


RE: حذف المكرر من ليست فيو - elgokr - 07-11-18

قم بازالة هذا الجزء من الكود
كود :
, count = Group.Count


تحياتى لك
وتمنياتى لك التوفيق



RE: حذف المكرر من ليست فيو - الماجيك مسعد - 07-11-18

حسنا ساجرب الان ولم اتمني لو تشرحه لكي افهم

(07-11-18, 02:54 PM)elgokr كتب : قم بازالة هذا الجزء من الكود
كود :
, count = Group.Count


تحياتى لك
وتمنياتى لك التوفيق

عندما ازلته ظهر خطأ

Error BC30456 'text' is not a member of 'String'.

في
g.text


RE: حذف المكرر من ليست فيو - ﺣﺮﯾﻒ ﺑﺮﻣﺠﺔ - 07-11-18

تم استخدام LINQ للحصول على التجميع

count وtext هما متغيران
وcount يحتوي مجموع العناصر المتشابه ل text

في الجزء الذي ذكرة المشرف
إجعله هكذا
PHP كود :
Group.Count 



RE: حذف المكرر من ليست فيو - الماجيك مسعد - 08-11-18

(07-11-18, 05:42 PM)ﺣﺮﯾﻒ ﺑﺮﻣﺠﺔ كتب :
تم استخدام LINQ للحصول على التجميع

count وtext هما متغيران
وcount يحتوي مجموع العناصر المتشابه ل text

في الجزء الذي ذكرة المشرف
إجعله هكذا
PHP كود :
Group.Count 



من الأخطاء التي يقع فيها البعض
أن يصف نفسه بوصف سلبي
الإنسان لا يولد متعلم
والعلم يكتسب بالتعلم

الله ينور عليك
تسلم ايدك
اسم علي مسمي Smile


RE: حذف المكرر من ليست فيو - الماجيك مسعد - 10-11-18

اخي الكريم

الكود يعمل بشكل ممتاز جدا
كود :
Dim num As Integer = InputBox("لو عايز تمسح الارقام المكررة مثلا الرقم مكرر 3 مرات
يبقا تكتب 3
ولو عايز تمسحه لو مكرر مرة واحدة
هتكتب 1", "Enter Number number You Want To clear", "1", "4", "5")
                           REM تجميع لأكبر من 5 مرات
                           Dim itemGroups = From itm As ListViewItem In glist.Items
                                            Group itm By key = itm.SubItems(4).Text Into Group
                                            Where Group.Count() > num
                                            Select text = key, c = Group.Count

                           REM حذف
                           For Each g In itemGroups
                                   For Each itm In glist.Items
                                       If itm.SubItems(6).Text = g.text Then glist.Items.Remove(itm)
                                   Next
                               Next

ولكن ماذا افعل اذا اردت ان اترك عنصر واحد من العناصر المكررة

مثلا عندي عنصر اسمه
حريف مكرر 4 مرات
اريد ان احذف منه 3 ويتبقي واحد فقط
ما الكود المناسب لذلك؟


RE: حذف المكرر من ليست فيو - الماجيك مسعد - 10-11-18

؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

هل من مساعد

................................