عند البحث باللغة العربية في قاعدة بيانات -فيها أسماء طلاب مثلًا - فإننا نواجه مشكلة في التفريق بين الحروف المتشابهة ، فمثلًا إذا كان في قاعدة بيانات اسم "أحمد" وبحثت عنه هكذا "احمد" بألف بدون همزة فإن النتيجة لن تظهر , وهذا ليس الإشكال الوحيد ، بل هناك آ ، إ ، ى ، ئ ، ء ، والحرفين ة ، ه ، و ابن ، بن ... إلخ تظهر مشكلة
وكنت قبل فترة تكلمت في هذا المنتدى عن حل لهذه المشكلة ، ولكن كان الحل ربما لايخلو من مشاكل ، لذا أعدت محاولة تصحيح الكود واختصاره
فإذا وضعت الآن على سبيل المثال "خالد عمر بن ماجد سعيد" ثم بحثت عن :
عمر بن ماجد
أو :عمر ماجد
أو : عمر مأجد
أو :عمر مإجد
أو : خالد ابن عمر
... إلخ ستظهر معك النتيجة بدون مشاكل -إن شاء الله -
أيضًا أرجو أن مقروئية الكود أفضل الآن ،
هناك فئة اسمها : Searching وعليها مدار الحل ، واستخدام هذه الفئة يكون كالتالي :
قبل أن تبحث عليك إرسال ماتريد البحث عنه للدالة : stringSe
وهي لتجهيز جملة الاستعلام , ولها ثلاث مدخلات :
1- اسم الجدول الذي تريد البحث فيه،
2- مصفوفة باسم العامود أو الأعمدة التي تريد البحث فيها ولابد تكون نصية .
3- جملة البحث أو جمل البحث ، ولابد أن تكون بعدد الأعمدة التي تريد البحث فيها .
ولما تحصل على نتيجة الإستعلام عليك أن تعرضها على الدالة : Comparison ولها مدخلين :
1- الجملة التي بحثت عنها .
2- النتيجة القادمة من الاستعلام , وستعطيك : true إن كانت صالحة للعرض أو : false إن لم تكن كذلك .
وهذا مشروع كامل للإختبار ، أرجو البحث عن أي خطأ (بمعنى إذا استبعد البرنامج أي نتيجة تريدها أو جلب نتيجة غير مرغوبه) وإخباري لننظر في محاولة التصحيح .
ملاحظة : المشروع يستخدم قاعدة بيانات sqlite