31-03-20, 03:17 AM (آخر تعديل لهذه المشاركة : 31-03-20, 06:26 PM {2} بواسطة EMADSSS.)
احبابي في الله انا استخدم هذا الكود للبحث ضمن ليست بوكس ويعمل بشكل جيد
لو سمحتم كيف بقدر اثناء البحث عن اسم يتم تجاهل الهمزات في الكلمة
فلو كتبت اسم أمجد بهمزه أو امجد بلا همزة يعطيني نفس النتيجة او إسماعيل بهمزه او اسماعيل بلا همزه وشكرا سلفا ياريت المساعدة
او حرف ه و ة هذا هو الكود المستخدم من قبلي كاملا قبل اضافة اكوادكم
كود :
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 & "%'"
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
31-03-20, 11:30 AM (آخر تعديل لهذه المشاركة : 31-03-20, 12:07 PM {2} بواسطة EMADSSS.)
(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
اخي الكريم الكود لايعمل لا اعرف السبب يعطي خطا تحت كلمة
31-03-20, 06:05 PM (آخر تعديل لهذه المشاركة : 31-03-20, 06:32 PM {2} بواسطة EMADSSS.)
اخي الكريم بعد اضافة الكود المرسل من قبلك بالاضافة لكود الاخ حريف البرمجة اصبحت عند البحث عن اسم امجد يعطيني اسماء امجد الذين بدون همزه فقط بدون اسماء أمجد الذين بهمزه ضمن الليست بوكس ثم تاتي رسالة خطا ارجو المساعدة اذا امكن كذلك الامر بالنسبة لكلمة الطيبة والطيبه فهو يعطيني كما كتبت تماما وليس الخيارين معا اي الطيبة والطيبه وامجد وأمجد
فانا ابحث في تكست بوكس ويتم عرض النتيجة في الليست بوكس
هذا الكود الخاص بي قبل اضافة اكوادكم
كود :
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 & "%'"
إن كنت تبحث داخل اليست فاستخدم الكود هذا افضل حيث سيعرض لك النتائج واحدة تلو الاخرى
كود :
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
(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
اخي الكريم الكود لا يعمل راح ارفق مشروع مصغير ياريت المساعدة
كل الذي اريده اذا بحثت عن اسم احمد يضهر لي احمد وأحمد
واذا بحثت عن كلمة الطيبه يضهر لي في التكست بوكس الطيبه والطيبة ياريت في حل لذلك
01-04-20, 05:40 AM (آخر تعديل لهذه المشاركة : 01-04-20, 05:49 AM {2} بواسطة سامي محمد.)
أولا استورد مجال الاسماء هذا
كود :
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.
(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.
شكرا اخي الكريم على مجهودك الرائع الكود يعمل بشك جيد
لكن انا كنت حابب عملية الفلترة تتم داخل الليست بوكس أيضا وليس الداتا كريت فيو فقط
اضف الليست بكس داخل شرط البحث ليكون الشكر النهائي هكذا
كود :
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