تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] التعديل على كود بحث
#1
احبابي في الله انا استخدم هذا الكود للبحث ضمن ليست بوكس ويعمل بشكل جيد
لو سمحتم كيف بقدر اثناء البحث عن اسم يتم تجاهل الهمزات في الكلمة
فلو كتبت اسم أمجد بهمزه أو امجد بلا همزة يعطيني نفس النتيجة او إسماعيل بهمزه او اسماعيل بلا همزه وشكرا سلفا ياريت المساعدة
او حرف ه و ة هذا هو الكود المستخدم من قبلي كاملا قبل اضافة اكوادكم

كود :
Private Sub TextBox9_TextChanged(sender As Object, e As EventArgs) Handles TextBox9.TextChanged
        Dim i As Integer = ListBox1.FindString(TextBox9.Text)
        ListBox1.SelectedIndex = i
        ' BindingSource2.Filter = "Name like '%" & TextBox9.Text & "%'"
الرد }}}
تم الشكر بواسطة:
#2
كود :
For Each s As String In TextBox9.Text
    s = Regex.Replace(s, "[أإآا]", "[أإآا]")
    s = Regex.Replace(s, "[هة]", "[هة]")
    s = Regex.Replace(s, "[ىي]", "[ىي]")
    s = Regex.Replace(s, "[وؤ]", "[وؤ]")
  txt &= s
BindingSource2.Filter = "Name like '%" & txt & "%'"
Next
يا رحمن الدنيا والآخرة ورحيمهما
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#3
(31-03-20, 06:19 AM)حريف برمجة كتب :
كود :
For Each s As String In TextBox9.Text
    s = Regex.Replace(s, "[أإآا]", "[أإآا]")
    s = Regex.Replace(s, "[هة]", "[هة]")
    s = Regex.Replace(s, "[ىي]", "[ىي]")
    s = Regex.Replace(s, "[وؤ]", "[وؤ]")
  txt &= s
BindingSource2.Filter = "Name like '%" & txt & "%'"
Next

اخي الكريم الكود لايعمل لا اعرف السبب يعطي خطا تحت كلمة
كود :
Regex
الرد }}}
تم الشكر بواسطة:
#4
Imports System.Text.RegularExpressions
الرد }}}
#5
اخي الكريم بعد اضافة الكود المرسل من قبلك بالاضافة لكود الاخ حريف البرمجة اصبحت عند البحث عن اسم امجد يعطيني اسماء امجد الذين بدون همزه فقط بدون اسماء أمجد الذين بهمزه ضمن الليست بوكس ثم تاتي رسالة خطا ارجو المساعدة اذا امكن كذلك الامر بالنسبة لكلمة الطيبة  والطيبه فهو يعطيني كما كتبت تماما وليس الخيارين معا اي الطيبة والطيبه وامجد وأمجد
فانا ابحث في تكست بوكس ويتم عرض النتيجة في الليست بوكس
هذا الكود الخاص بي قبل اضافة اكوادكم
كود :
Private Sub TextBox9_TextChanged(sender As Object, e As EventArgs) Handles TextBox9.TextChanged
       Dim i As Integer = ListBox1.FindString(TextBox9.Text)
       ListBox1.SelectedIndex = i
        BindingSource2.Filter = "Name like '%" & TextBox9.Text & "%'"
الرد }}}
تم الشكر بواسطة:
#6
إن كنت تبحث داخل اليست فاستخدم الكود هذا افضل حيث سيعرض لك النتائج واحدة تلو الاخرى

كود :
  Dim Ls As New ArrayList
    Dim I As Integer
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If Ls.Count = 0 Then
            Dim Txt As String = Nothing
            For Each s As String In TextBox1.Text
                s = Regex.Replace(s, "[أإآا]", "[أإآا]")
                s = Regex.Replace(s, "[هة]", "[هة]")
                s = Regex.Replace(s, "[ىي]", "[ىي]")
                s = Regex.Replace(s, "[وؤ]", "[وؤ]")
                Txt &= s
            Next
            For x As Integer = 0 To ListBox1.Items.Count - 1
                If Regex.IsMatch(ListBox1.Items(x), Txt) = True Then
                    Ls.Add(x)
                End If
            Next
            If Ls.Count <> 0 Then ListBox1.SelectedIndex = Ls(0)
        Else
            I += 1
            If I > Ls.Count - 1 Then I = 0
            ListBox1.SelectedIndex = Ls(I)
        End If
    End Sub
    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        Ls.Clear()
        I = 0
    End Sub
الرد }}}
تم الشكر بواسطة:
#7
(01-04-20, 01:32 AM)سامي محمد كتب : إن كنت تبحث داخل اليست فاستخدم الكود هذا افضل حيث سيعرض لك النتائج واحدة تلو الاخرى

كود :
  Dim Ls As New ArrayList
    Dim I As Integer
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If Ls.Count = 0 Then
            Dim Txt As String = Nothing
            For Each s As String In TextBox1.Text
                s = Regex.Replace(s, "[أإآا]", "[أإآا]")
                s = Regex.Replace(s, "[هة]", "[هة]")
                s = Regex.Replace(s, "[ىي]", "[ىي]")
                s = Regex.Replace(s, "[وؤ]", "[وؤ]")
                Txt &= s
            Next
            For x As Integer = 0 To ListBox1.Items.Count - 1
                If Regex.IsMatch(ListBox1.Items(x), Txt) = True Then
                    Ls.Add(x)
                End If
            Next
            If Ls.Count <> 0 Then ListBox1.SelectedIndex = Ls(0)
        Else
            I += 1
            If I > Ls.Count - 1 Then I = 0
            ListBox1.SelectedIndex = Ls(I)
        End If
    End Sub
    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        Ls.Clear()
        I = 0
    End Sub

اخي الكريم الكود لا يعمل راح ارفق مشروع مصغير ياريت المساعدة
كل الذي اريده اذا بحثت عن اسم احمد يضهر لي احمد وأحمد
واذا بحثت عن كلمة الطيبه يضهر لي في التكست بوكس الطيبه والطيبة ياريت في حل لذلك


الملفات المرفقة
.rar   تجاهل الهمزات.rar (الحجم : 191.18 ك ب / التحميلات : 26)
الرد }}}
تم الشكر بواسطة:
#8
أولا استورد مجال الاسماء هذا
كود :
Imports System.Text.RegularExpressions
بعد ذلك استبدل الكود الذي في حدث الكتابة للتكست بهذا

كود :
  Dim i As Integer = ListBox1.FindString(TextBox9.Text)
        ListBox1.SelectedIndex = i
        GgDataGridView.DataSource = Nothing
        GgDataGridView.Rows.Clear()
        Dim N As Integer
        Dim Txt As String = Nothing
        For Each x As String In TextBox9.Text
            x = System.Text.RegularExpressions.Regex.Replace(x, "[إأآا]", "[إأآا]")
            x = System.Text.RegularExpressions.Regex.Replace(x, "[هة]", "[هة]")
            x = System.Text.RegularExpressions.Regex.Replace(x, "[وؤ]", "[وؤ]")
            x = System.Text.RegularExpressions.Regex.Replace(x, "[يى]", "[يى]")
            Txt &= x
        Next
        For Each x As DataRow In EeeeDataSet.gg.Rows
            If System.Text.RegularExpressions.Regex.IsMatch(x(1), "^" & Txt) = True Then
                GgDataGridView.Rows.Add()
                GgDataGridView(0, N).Value = x(0)
                GgDataGridView(1, N).Value = x(1)
                GgDataGridView(2, N).Value = x(2)
                N += 1
            End If
        Next



او حمله من المرفقات بعد التعديل

آسف لا داعي لكتابة هذا الجزء قبل كل عملية استبدال ان تم استيراد مجال الأسماء
System.Text.RegularExpressions.


الملفات المرفقة
.rar   تجاهل الهمزات.rar (الحجم : 188.69 ك ب / التحميلات : 15)
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#9
(01-04-20, 05:40 AM)سامي محمد كتب : أولا استورد مجال الاسماء هذا
كود :
Imports System.Text.RegularExpressions
بعد ذلك استبدل الكود الذي في حدث الكتابة للتكست بهذا

كود :
  Dim i As Integer = ListBox1.FindString(TextBox9.Text)
        ListBox1.SelectedIndex = i
        GgDataGridView.DataSource = Nothing
        GgDataGridView.Rows.Clear()
        Dim N As Integer
        Dim Txt As String = Nothing
        For Each x As String In TextBox9.Text
            x = System.Text.RegularExpressions.Regex.Replace(x, "[إأآا]", "[إأآا]")
            x = System.Text.RegularExpressions.Regex.Replace(x, "[هة]", "[هة]")
            x = System.Text.RegularExpressions.Regex.Replace(x, "[وؤ]", "[وؤ]")
            x = System.Text.RegularExpressions.Regex.Replace(x, "[يى]", "[يى]")
            Txt &= x
        Next
        For Each x As DataRow In EeeeDataSet.gg.Rows
            If System.Text.RegularExpressions.Regex.IsMatch(x(1), "^" & Txt) = True Then
                GgDataGridView.Rows.Add()
                GgDataGridView(0, N).Value = x(0)
                GgDataGridView(1, N).Value = x(1)
                GgDataGridView(2, N).Value = x(2)
                N += 1
            End If
        Next



او حمله من المرفقات بعد التعديل

آسف لا داعي لكتابة هذا الجزء قبل كل عملية استبدال ان تم استيراد مجال الأسماء
System.Text.RegularExpressions.

شكرا اخي الكريم على مجهودك الرائع الكود يعمل بشك جيد
لكن انا كنت حابب عملية الفلترة تتم داخل الليست بوكس أيضا وليس الداتا كريت فيو فقط
الرد }}}
تم الشكر بواسطة:
#10
اضف الليست بكس داخل شرط البحث ليكون الشكر النهائي هكذا

كود :
    GgDataGridView.DataSource = Nothing
        ListBox1.DataSource = Nothing
        GgDataGridView.Rows.Clear()
        ListBox1.Items.Clear()
        Dim N As Integer
        Dim Txt As String = Nothing
        For Each x As String In TextBox9.Text
            x = Regex.Replace(x, "[إأآا]", "[إأآا]")
            x = Regex.Replace(x, "[هة]", "[هة]")
            x = Regex.Replace(x, "[وؤ]", "[وؤ]")
            x = Regex.Replace(x, "[يى]", "[يى]")
            Txt &= x
        Next
        For Each x As DataRow In EeeeDataSet.gg.Rows
            If Regex.IsMatch(x(1), "^" & Txt) = True Then
                GgDataGridView.Rows.Add()
                GgDataGridView(0, N).Value = x(0)
                GgDataGridView(1, N).Value = x(1)
                GgDataGridView(2, N).Value = x(2)
                ListBox1.Items.Add(x(1))
                N += 1
            End If
        Next
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , ابراهيم ايبو


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ارجو التعديل على الدالة المرفقة - الدالة تعيد الرقم -1 new_programer 4 90 20-03-24, 01:18 PM
آخر رد: تركي الحلواني
  [VB.NET] مساعدة في استدعاء البيانات معينه من form الأول إلى form 2 بدون التعديل loay775 2 272 18-01-24, 05:04 PM
آخر رد: loay775
  [VB.NET] كود التعديل Abdellatif 6 394 21-12-23, 02:01 PM
آخر رد: Abdellatif
  كود التعديل لم ينجح معي melad2002 4 298 16-12-23, 12:22 AM
آخر رد: anes
  رجاء التعديل على الكود المرفق - كلاس لعرض كود المورد new_programer 4 357 13-10-23, 01:47 AM
آخر رد: new_programer
  اريد التعديل على كود اذا كان القيمة المدخلة مكررة بDataGridView يتم فقط زيادة العدد moh61 6 820 26-07-23, 10:41 AM
آخر رد: تركي الحلواني
  يرجي التعديل على المثال - تعبءة الكمبوبوكس داخل الجريد بانواع الوحدات new_programer 3 800 14-04-23, 05:31 PM
آخر رد: new_programer
  التعديل على مشروع ارتجال مشروع امتحانات مصمم هاوي 2 559 12-03-23, 06:48 PM
آخر رد: سعود
  التعديل على كود الحفظ مصمم هاوي 4 708 06-03-23, 12:12 AM
آخر رد: مصمم هاوي
  التعديل على كود زر RadioButton مصمم هاوي 2 578 21-11-22, 01:33 AM
آخر رد: مصمم هاوي

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


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