تقييم الموضوع :
  • 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 ك ب / التحميلات : 19)
الرد
تم الشكر بواسطة:
#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 ك ب / التحميلات : 11)
الرد
#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
الرد


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] التعديل على كود لقرائة باقي المعلومات من قاعدة البيانات khairallah 1 53 24-05-20, 03:19 AM
آخر رد: اسامه الهرماوي
  كيفية التعديل على برنامج hasanqo 1 58 21-05-20, 06:45 AM
آخر رد: معاند الحظ
  برجاء التعديل على المثال المرفق new_programer 6 212 05-05-20, 12:03 AM
آخر رد: عبدالله الدوسري
  [VB.NET] كيف اقضي على مشاكل الكود البحث ةالاضافة و التعديل بالعربية في فيجوال بيسك rochdi191 5 144 01-05-20, 04:26 PM
آخر رد: rochdi191
  [سؤال] طلب التعديل علي كود سحب بيانات سيرفر ScreamVoice 3 603 28-04-20, 04:23 PM
آخر رد: nazar70
  مطلوب التعديل على كود يتعلق بفلترة الاصناف حسب تاريخ انتهاء الصلاحية momani33 1 147 10-04-20, 05:23 AM
آخر رد: asemshahen5
  اكواد الأضافة والحفظ والتعديل وحفظ التعديل Moneam 0 149 21-03-20, 01:29 PM
آخر رد: Moneam
  [VB.NET] ممكن التعديل على المثال بتبديل أدوات ديف اكسبريس إلى أدوات فيجوال بيسك rfhdgd 3 209 24-02-20, 03:06 AM
آخر رد: alsalamoni
  [سؤال] هل استطيع نسخ الفريم و التعديل علية بسام محمدغانم 1 153 03-02-20, 09:57 PM
آخر رد: alsalamoni
Heart [VB.NET] سوال بخصوص حفظ صوره بفيجوال بيسك دوت نت بعد التعديل عليها سواء بالرسم او اضافه صوره صالح لطفى 1 263 03-02-20, 10:21 AM
آخر رد: بسام محمدغانم

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


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