تقييم الموضوع :
  • 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
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

هل من مساعد

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  خطأ في تحميل البيانات من الداتا جريد الي ليست فيو Emam emam 2 512 11-04-23, 01:13 AM
آخر رد: Emam emam
  [VB.NET] عرض على ليست بوكس aminesori 2 378 05-01-23, 10:09 PM
آخر رد: aminesori
  محتاج استشارة ضرورى: عمل أتاتش لقاعدة بيانات ليست على الـ C dr.programming 2 596 20-10-22, 04:47 AM
آخر رد: dr.programming
Exclamation [سؤال] طريقة ملء ملف اكسل احادي العمود من خلال ليست بوكس asmarsou 11 1,231 26-08-22, 08:48 PM
آخر رد: Taha Okla
  [سؤال] هناك ليست بوكس مربوطه بقاعده بيانات وعايز كود لجلب لجلب اسماء العناصر المحدده حسن الجلب 1 601 18-08-22, 07:20 AM
آخر رد: سعود
  [سؤال] عايز كود عرض اسماء الجداول من قاعد البيانات الي ليست بوكس حسن الجلب 1 693 23-07-22, 08:53 PM
آخر رد: سعود
  حذف المكرر بين 2 جريد فيو mahmoudshefooo 4 1,077 09-05-22, 02:02 AM
آخر رد: ابو انس
  ليست بوكس remonmary 1 929 24-12-21, 11:53 PM
آخر رد: ابو انس
Exclamation [سؤال] احتاج مساعدة في حفظ ليست بوكس الى تكست malek369 0 833 24-08-21, 09:12 AM
آخر رد: malek369
  حساب الاسماء المكرر في Gridview cyclops200 3 1,670 12-07-21, 03:37 PM
آخر رد: ابو انس

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


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