تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] حذف المكرر من ليست فيو
#1
السلام عليكم
عندي ليست فيو
وفيها عناصر متكررة
في عنصر مكرر مرة واحدة وفي عنصر مكرر اكتر من 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)
الرد
تم الشكر بواسطة:
#2
(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 
الرد
تم الشكر بواسطة: elgokr , الماجيك مسعد
#3
(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.
الرد
تم الشكر بواسطة: elgokr
#4
(07-11-18, 07:46 AM)rmnr كتب : أعتقد عندك متغير آخر باسم count، قم بتغيير احدهم

بانتظار صاحب الكود
لاني اعتقد لو كان متغير كان كتبه في الكود لاني معرفش count متغير ايه ولا خاص بايه
لاني لم اكتب اكواد بهذا الشكل من قبل Big Grin هذه اكواد المحترفين الواحد بيشوف الكود بتاعهم بيحس نفسه حمار مش فاهم حاجة Big Grin
الرد
تم الشكر بواسطة:
#5
قم بازالة هذا الجزء من الكود
كود :
, count = Group.Count


تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة:
#6
حسنا ساجرب الان ولم اتمني لو تشرحه لكي افهم

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


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

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

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

في
g.text
الرد
تم الشكر بواسطة: elgokr , elgokr
#7
تم استخدام LINQ للحصول على التجميع

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

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



من الأخطاء التي يقع فيها البعض
أن يصف نفسه بوصف سلبي
الإنسان لا يولد متعلم
والعلم يكتسب بالتعلم
الرد
تم الشكر بواسطة: ابو روضة , الماجيك مسعد , elgokr , vb2010
#8
(07-11-18, 05:42 PM)ﺣﺮﯾﻒ ﺑﺮﻣﺠﺔ كتب :
تم استخدام LINQ للحصول على التجميع

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

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



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

الله ينور عليك
تسلم ايدك
اسم علي مسمي Smile
الرد
تم الشكر بواسطة: elgokr
#9
اخي الكريم

الكود يعمل بشكل ممتاز جدا
كود :
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 ويتبقي واحد فقط
ما الكود المناسب لذلك؟
الرد
تم الشكر بواسطة:
#10
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

هل من مساعد

................................
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الاضافه والمسح من ليست بوكس مرتبطه بداتا سورس makky 0 85 21-10-18, 04:39 PM
آخر رد: makky
  حذف صف من داتا ليست تناسيم 3 150 07-10-18, 06:45 AM
آخر رد: rnmr
  كود نسخ السطر او الكتابة الى ليست فيو aldery 5 268 30-08-18, 08:04 PM
آخر رد: aldery
  الرجاء تعديل علا المثال التالي لعرض ملف هيكس في ليست بوكس wolf1120 17 566 22-08-18, 10:18 PM
آخر رد: elgokr
  [كود] حل مشكلة داتا سورس (ليست بوكس ) عبدالرحمن المكاوي 7 859 16-04-18, 08:36 PM
آخر رد: عبدالرحمن المكاوي
  [VB.NET] اداة شيك ليست بوكس محمد اسماعيل 2 286 05-12-17, 02:32 PM
آخر رد: محمد اسماعيل
  [سؤال] كيفية نسخ النصوص من داخل ليست بوكس تنمية المعرفة 7 502 12-09-17, 11:15 PM
آخر رد: تنمية المعرفة
  [سؤال] كيف اجعل زر او نافذة تساوى صورة ليست فى الريسورس ولكن على الجهاز؟؟؟ Mohamed371 3 588 24-03-17, 10:21 AM
آخر رد: أسامة السالمي
  [VB.NET] ازاى اتحقق ان الصف رقم 1 فى العمود رقم 7 فيه قيمة وليس فارغ؟ فى ليست فيو الماجيك مسعد 10 954 31-01-17, 07:03 AM
آخر رد: الماجيك مسعد
  [VB.NET] كيفية فلترة ليست فيو vb net Multiple Column Filter listview الماجيك مسعد 12 1,301 27-01-17, 05:34 AM
آخر رد: الماجيك مسعد

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم