بسم الله الرحم الرحيم
السلام عليكم ورحمة الله وبركاته
اخواني في المنتدى
بس حابب اشرح فكرة البرنامج لكي يكون السؤال واضح ايش المطلوب منه
-----------------------------------------------------
الفكرة كالتالي
اعمل برنامج مقارنة SIGNATURE بالملفات في الجهاز
يوجد عندي قاعدة بيانات بADO.NET تحتوي على signiture
حيث عمية المقارن تتم كالتالي :-
يقوم الشخص تحديد المسار الذي يريد البحث فيه ثم يقوم البرنامج بالبحث في جميع الملفات التي في هذا المسار
يمر على كل ملف ويقوم بقرائة الملف وتحويله الي hex وثم يخزنه فيstring
ويقوم باستخدام regular expression في عملية مقارنة الstring بالsigniture
كالتالي :-
string Select_MinId = "select min(id) from table";
string Select_MaxId = "select max(id) from table";
for (int i = get_data_base.getId(Select_MinId); i <= get_data_base.getId(Select_MaxId); i++)
{
signature = get_data_base.get_Signature(i); //get the signiture from database
Boolean check_match = Regex.IsMatch(StrFile, signature, RegexOptions.IgnoreCase);
}
حيث StrFile الملف بعد تحويله الى hex
signiture -->هي regular الذي اريد مقارنته
وحيث ال et_data_base.getId لاسترجاع الid من الdatabase----------------------------------------------------------
السؤال هو:-عندما زاد عدد الsigniture في الdb قلة سرعة البحث كثيرا جدا صار بطيئ
كيف اقدر اسرع البحث
هل يوجد طريقه افضل او ما هو الحل للتسريع عملية البحث
وشكرا



