تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[كود] كود البحث بالاسم
#1
السلام عليكم

ماهو الخطا في كود البحث بالاسم سواً يكون الاسم بالهمزه او بدون   الخ

مرفق لكم الكود والمشروع
كود :
'الكود منقول من مشاركة الأستاذ حريف برمجة
           For Each s As String In textSerch.Text
               s = Regex.Replace(s, "[أإآا]", "[أإآا]")
               s = Regex.Replace(s, "[هة]", "[هة]")
               s = Regex.Replace(s, "[ىي]", "[ىي]")
               s = Regex.Replace(s, "[وؤ]", "[وؤ]")

               Dim txt As String
               txt &= s
اللهمّ بعلمك الغيب وقدرتك على الخلق، أحييني ما علمت الحياة خيراً لي، وتوفّني ما علمت الوفاة خيراً لي.


الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته

عندك أكثر من مشكلة :

- مشكلة في مكان تعريف المتغير ومجاله.
- مشكلة في التعويض، وعما تبحث.
- مشكلة بحلقة الدوران.

لن أشير إلى مكان الخطأ بالتحديد، 
ولكن دقق بين الكودين وستصل لمكان وسبب هذه الأخطاء ولن تنسى هذه الملاحظة أبداً.

الكود : 

كود :
dt.Clear()
Label1.Hide()

Dim txt As String = ""

'الكود منقول من مشاركة الأستاذ حريف برمجة
For Each s As String In textSerch.Text
   s = Regex.Replace(s, "[أإآا]", "[أإآا]")
   s = Regex.Replace(s, "[هة]", "[هة]")
   s = Regex.Replace(s, "[ىي]", "[ىي]")
   s = Regex.Replace(s, "[وؤ]", "[وؤ]")

   txt &= s

   If textSerch.Text.Trim = "" Then Label1.Visible = False : Exit Sub
   If textSerch.Text.Trim.Length < 3 Then
       Label1.Visible = True
       Exit Sub
   End If


   dt.Clear()
   Label1.Hide()
   If textSerch.Text.Trim.Length >= 3 Then
       da.SelectCommand.Parameters.Clear()
       da.SelectCommand.Parameters.AddWithValue("@c", "%" & txt.Trim & "%")
       da.Fill(dt)
       DataGridView1.DataSource = dt
       DataGridView1.ClearSelection()
       If dt.Rows.Count = 0 Then Label1.Show()
   End If
   If textSerch.Text = "" Then
       Label2.Show()
   Else
       Label2.Hide()
   End If
Next


بالتوفيق ..

ملاحظة : كود مميز جداً، لو كان لديك بعض الوقت، نتمنى أن تصنع مثال للبحث به وتشمل كل الحالات وترفقه كمرجع لطلاب العلم في هذا المنتدى..
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: أبووسم , asmarsou , asmarsou , محمد مسافر
#3
ان شاء الله

تم تصحيح الكود واصبح شغال كالاتي

كود :
dt.Clear()
       Label1.Hide()

       Dim txt As String = ""

       For Each s As Char In textSerch.Text
           If s = "أ" Or s = "إ" Or s = "آ" Or s = "ا" Then
               txt &= "[أإآا]"
           ElseIf s = "ه" Or s = "ة" Then
               txt &= "[هة]"
           ElseIf s = "ى" Or s = "ي" Then
               txt &= "[ىي]"
           ElseIf s = "و" Or s = "ؤ" Then
               txt &= "[وؤ]"
           Else
               txt &= s
           End If
       Next

       If textSerch.Text.Trim = "" Then
           Label1.Visible = False
           Exit Sub
       End If

       If textSerch.Text.Trim.Length < 3 Then
           Label1.Visible = True
           Exit Sub
       End If

       da.SelectCommand.Parameters.Clear()
       da.SelectCommand.Parameters.AddWithValue("@c", "%" & txt.Trim & "%")
       da.Fill(dt)
       DataGridView1.DataSource = Nothing
       DataGridView1.DataSource = dt
       DataGridView1.ClearSelection()

       If dt.Rows.Count = 0 Then
           Label1.Show()
       End If

       If textSerch.Text = "" Then
           Label2.Show()
       Else
           Label2.Hide()
       End If
اللهمّ بعلمك الغيب وقدرتك على الخلق، أحييني ما علمت الحياة خيراً لي، وتوفّني ما علمت الوفاة خيراً لي.


الرد }}}
تم الشكر بواسطة:
#4
الكود الذي أرفقته هو الكود بعد التصحيح..

والكود الذي وضعته أنت كتصحيح للكود :

يحتوي على خطأ بالتعويض ... لن يعمل معك في كل الحالات،
ربما يعمل معك هنا بسبب For Each ولكن ان استخدمته في موضع آخر بما سيظهر الخطأ.. 
ولن تحصل على ما ترجوه من حل، فتظن أنك كتبت كوداً صحيحاً.

ليس المهم أن يعمل الكود، المهم أن تعرف كيف تقرأ الكود وكأنك أنت المترجم(Compiler) الذي سينفذ الكود..
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: محمد مسافر
#5
حاولت على الكود السابق الذي ظهر لي الخطا ولم اعرف سوف احاول ان اجد الخطاء وهو الكود الافضل لي وان لم اعرف نتمنى الافاده لمن عنده المعرفه ، شكراُ استاذ/ طه.
اللهمّ بعلمك الغيب وقدرتك على الخلق، أحييني ما علمت الحياة خيراً لي، وتوفّني ما علمت الوفاة خيراً لي.


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



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


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