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

عندما تكتب جملة البحث عن كلمة ما ضمن حقل ما ليكن (NameF)
تكتب في شرط البحث :
كود :
"..... Where NameF Like '%" & TextBox1.Text &"%' "

من أجل تجاهل شيء ما من البحث نكتب مثلا (لتجاوز حرف L من البحث نكتب) :
كود :
" Where Replace(NameF,'L','') Like '%" & TextBox1.Text &"%' "

من أجل أكثر من تجاوز نستخدم بالعادة متغير لنبسط الأمر على عدة أسطر  .. 
كود :
Dim StrF As String = "NameF"  ' اسم الحقل االذي نريد البحث فيه
StrF = "Replace(" & StrF & ",'ّ','')"     ' الشدة
StrF = "Replace(" & StrF & ",'ء','')"     ' الهمزة
StrF = "Replace(" & StrF & ",'~','')"     ' المدة
StrF = "Replace(" & StrF & ",'ـ','')"     ' التطويلة بين الحروف
StrF = "Replace(" & StrF & ",'ْ','')"     '  السكون
StrF = "Replace(" & StrF & ",'َ','')"     ' الفتحة
StrF = "Replace(" & StrF & ",'ً','')"     ' تنوين الفتح
StrF = "Replace(" & StrF & ",'ُ','')"     ' الضمة
StrF = "Replace(" & StrF & ",'ٌ','')"     ' تنوين الضم
StrF = "Replace(" & StrF & ",'ِ','')"     ' الكسرة
StrF = "Replace(" & StrF & ",'ٍ','')"     ' تنوين الكسر

بهذه الطريقة نكون تجاوزنا كل الحركات والمد والهمزة والشدة ، بالتالي أصبح التعديل جملة البحث أسهل ونكتب فيها حينها :
كود :
"..... Where " & StrF & " Like '%" & TextBox1.Text &"%' "
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة:
#3
السلام عليكم

ولتعم الفائدة توجد دالة انا أستخدمها في عملي وهي:

PHP كود :
Private Function RemoveDiacritics(input As String) As String
    
' تطبيع النص ليفصل الأحرف عن علامات التشكيل الخاصة بها
    Dim normalizedString As String = input.Normalize(NormalizationForm.FormD)
    Dim stringBuilder As New StringBuilder()

    ' 
تكرار كل حرف في النص المطبع
    For Each c 
As Char In normalizedString
        
' التحقق مما إذا كانت فئة اليونيكود للحرف ليست من فئة NonSpacingMark (أي ليست علامة تشكيل)
        If CharUnicodeInfo.GetUnicodeCategory(c) <> UnicodeCategory.NonSpacingMark Then
            ' 
إضافة الحرف إلى السلسلة الجديدة إذا لم يكن علامة تشكيل
            stringBuilder
.Append(c)
 
       End If
 
   Next

    
' إرجاع السلسلة الجديدة بدون علامات التشكيل
    Return stringBuilder.ToString()
End Function 

يتم استدعائها بهذا الشكل 

PHP كود :
 TextBox_Out.Text RemoveDiacritics(TextBox_Input.Text
[صورة مرفقة: images?q=tbn:ANd9GcT72OLJW7D1E5QW-HUeWeJ...TGoNeg2jnQ]
الرد }}}
تم الشكر بواسطة:
#4
(01-08-24, 04:21 AM)Taha Okla كتب : وعليكم السلام ورحمة الله وبركاته

عندما تكتب جملة البحث عن كلمة ما ضمن حقل ما ليكن (NameF)
تكتب في شرط البحث :
كود :
"..... Where NameF Like '%" & TextBox1.Text &"%' "

من أجل تجاهل شيء ما من البحث نكتب مثلا (لتجاوز حرف L من البحث نكتب) :
كود :
" Where Replace(NameF,'L','') Like '%" & TextBox1.Text &"%' "

من أجل أكثر من تجاوز نستخدم بالعادة متغير لنبسط الأمر على عدة أسطر  .. 
كود :
Dim StrF As String = "NameF"  ' اسم الحقل االذي نريد البحث فيه
StrF = "Replace(" & StrF & ",'ّ','')"     ' الشدة
StrF = "Replace(" & StrF & ",'ء','')"     ' الهمزة
StrF = "Replace(" & StrF & ",'~','')"     ' المدة
StrF = "Replace(" & StrF & ",'ـ','')"     ' التطويلة بين الحروف
StrF = "Replace(" & StrF & ",'ْ','')"     '  السكون
StrF = "Replace(" & StrF & ",'َ','')"     ' الفتحة
StrF = "Replace(" & StrF & ",'ً','')"     ' تنوين الفتح
StrF = "Replace(" & StrF & ",'ُ','')"     ' الضمة
StrF = "Replace(" & StrF & ",'ٌ','')"     ' تنوين الضم
StrF = "Replace(" & StrF & ",'ِ','')"     ' الكسرة
StrF = "Replace(" & StrF & ",'ٍ','')"     ' تنوين الكسر

بهذه الطريقة نكون تجاوزنا كل الحركات والمد والهمزة والشدة ، بالتالي أصبح التعديل جملة البحث أسهل ونكتب فيها حينها :
كود :
"..... Where " & StrF & " Like '%" & TextBox1.Text &"%' "

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] استفسار بخصوص البحث في RichTextBox SerialPort dubai.eig 2 655 18-06-25, 11:09 AM
آخر رد: dubai.eig
  [VB.NET] تكست بوكس EMADW 3 448 09-05-25, 05:09 PM
آخر رد: princelovelorn
  [VB.NET] جمع عمود داتا كريت فيو مع تجاهل الخلايا الفارغة EMADW 4 476 29-04-25, 10:57 PM
آخر رد: Taha Okla
  كود لتغير لون الخط فى التكست بوكس خالد كامل1 1 334 31-01-25, 06:22 PM
آخر رد: أبو خالد الشكري
  [كود] كود تغيير حجم النص في التكست بوكس hassan 8 8,769 30-01-25, 02:33 AM
آخر رد: خالد كامل1
  مساعدة في استيراد البيانات من الليست بوكس fireswored1 4 462 22-01-25, 08:43 PM
آخر رد: fireswored1
  [VB.NET] تعبئة كومبو بوكس بقواعد البيانات الموجوده علي السيرفر Mustafa Shaker 6 4,087 23-12-24, 03:59 PM
آخر رد: aljzazy
  [VB.NET] جيك بوكس muaamar 3 369 23-11-24, 09:00 PM
آخر رد: rdxdz
  كتابه عدد معين من الارقام داخل تيكست بوكس modymody300894 3 547 07-11-24, 09:15 PM
آخر رد: modymody300894
Rainbow [كود] البحث تلقائياً عند التبديل بين الـ RadioButton محمد مسافر 8 677 04-10-24, 02:33 AM
آخر رد: Taha Okla

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


يقوم بقرائة الموضوع: