ـ[مجرد إنسان]ــــــــ[21 - 10 - 05, 03:05 م]ـ
أخي الكريم أبو سارة
قرأت على السريع كود الفهرسة الذي تقومون به، وأحب إفادتكم بأن لا تستعملوا تقطيع الكلمات بأنفسكم، بحيث تأخذ أول كلمة، ثم تحذفها، وهكذا حتى ينتهي السجل
وكما تعلم فإن تعامل الـ VB مع الـ Strings سيء، وكما يقولون:
not Optimized
ولهذا توجد خورازميات أيضا تحسن من التعامل معها
To Add Strings
To Replace Strings
راجع الوصلة التالية ففيها بعض الفوائد
http://www.aivosto.com/vbtips/stringopt.html
استغربت أن تأخذ الفهرسة 10 أيام!! عليك تقطيع الكلمات باستخدام الدالة
Split
هذه الدالة تقطع الكلمات حسب ما تعطيها من رمز، أو اترك تمرير الباراميتر الثاني لتقطع حسب المسافة، يعني كلمة كلمة
الدالة Split تعيد مصفوفة Array ، ومن خلال الدوران في Loop داخل الـ Array تستطيع استخراج الكلمات، وإضافتها لجدول الفهرسة، ويمكن أن تلاحظ سرعة تقريبا 10 مرات أسرع من السرعة الحالية التي تفهرس بها.
أيضا، في جدول الفهرسة، كيف ستعمله إذا كان عندك 1000 كتاب مثلا، وبكل كتاب العديد من السجلات، ستجد أن جدول الفهرسة به ملايين السجلات، فكيف ستبحث فيها مرة أخرى؟!!
لاحظت أيضا في جدول الرواة، أنك في الكنى جعلت حقلين، حقل مع كلمة (أبو) مثلا، وحقل بدونها، فلماذا؟؟
إذا كان السبب أن المستخدم قد يبحث بدون (أبو)، فهذه سهلة، ابحث بالمعامل Like ، حتى لا تضطر لتكبير حجم قواعد البيانات
هناك خوارزميات الضغط Compress ، تستطيع من خلالها ضغط الكلمات نفسها، لتأخذ 70 % من الحجم تقريبا، ولكن تحتاج أيضا إلى فك الضغط عن البحث، طبعا المستخدم لن يشعر، لكن يجب أن يكون الكود نفسه محسن ( Optimized ) .
شكرا للجميع
ـ[الطيماوي]ــــــــ[21 - 10 - 05, 05:53 م]ـ
أخي الحبيب أبو سارة حسام
بداية لك أن تتناقش أنت وأخونا مجرد إنسان كما يحلو لكم في موضوع تسريع البحث وتجيب عن أسئلة ويجيب عن أسئلتك فأمر البرمجة راجع لكما
أما بالنسبة لي:
فالواجهات التي أرسلتها ليس الهدف منها أن البرنامج ستكون واجهاته هكذا بل الواجهات ستحتوي على خدمات كذا بمعنى آخر تفصيل ما سيحتويه البرنامج من خدمات:
الشطر الأول: القسم التنفيذي
الشطر الثاني: القسم التعديلي
ماذا أقصد بهذين الشطرين:
أقصد أن المستخدم له خيارين خيار استخدام البرنامج من خلال الخدمات التي أدرجت به وجهزت سواء من قبلنا أو قبل غيرنا
والشطر الثاني: هي امكانية تجهيز البيانات من قبل المستخدم ذاته أ ي تعديل ما يريد وادخاله من خلاله
والملاحظ طبعا أن الشطر الثاني: أصعب على المستخدم والمبرمج من الشطر الأول، بل على المبرمج أكثر من المستخدم، لان عملية ا لتعديلات يجب أن تكون من داخل التطبيق لا من خارجه
بمعنى:
الآن أنا استلمت البرنامج باعتباري مستخدم عاديب، فتحت البرنامج وجدت أيقونة اسمها تصفح كتاب سأجد البرنامج خاليا من أي كتاب، سأضغط على زر رواه سأجدها كذلك وكذلك بقية الخدمات سأستغرب، لن اجد في البرنامج شيئا سوى ملف التعليمات وأيقونة زر تعديلات
وهنا سيبدأ العمل:
عند ضغط زر تعديلات ستظهر واجهة للمستخدم فيها عدة أيقونات بخدمات البرنامج المختلفة ونبدأ بتفصيلها عل النحو التالي:
1 - ادخال بيانات:
أولا: كتاب:
1 - ادخال اسم كتاب:
أ- بمجرد ضغط المستخدم عليها ستظهر له رسالة مكتوب فيها: ما اسم الكتاب الذي تود ادخاله مع وجود مربع نص يقوم المستخدم بادخال اسم الكتاب فيه والضغط على زر موافق
ثم تظهر رسالة أخرى مكتوب فيها السؤال: لأي تصنيف رئيسي من العلوم ينتمي هذا الكتاب وفي الأسفل مربع نص لكتابة التصنيف الذي يريد ثم لديه خياران نعم وإلغاء الأمر في حالة الضغط على زر إلغاء الأمر سوف يتم وضع الكتاب منفردا بدون أي تصنيف، أما إن كانت الإجابة بنعم فسوف تخرج رسالة ثالثة مكتوب فيها: تحت أي تصنيف فرعي ينتمي هذا الكتاب، ثم مربع نص ليكتب التصنيف
وفي الأسفل زر موافق، علما بأن كل تصنيف رئيسي وفرعي يكتبه المستخدم يتم تخزينه له في قائمة حتى لا يتم ادخال التصنيفات فيما بعد بشكل خاطئ
ب- تعديل موضع كتاب:
بمجر الضغط على هذا الزر تخرج شجرة تصنيفات البرنامج التي أعدها المستخدم بيده، وتخرج له رسالة قم بالضغط على ا لكتاب الذي تريد تغيره ثم قم بسحبه إلى المكان الذي تريد، وبذلك يتم نقل الكتاب من تصنيف لتصنيف
ج ـ حذف اسم كتاب: ويتم فيها خروج قائمة بأسماء الكتب وفي أسفلها زر حذف وبمجرد الضغط على اسم الكتاب ثم حذف يتم حذف الكتاب من داخل التصنيف.
د- حذف تصنيف: حيث يتم فيها ظهور شجرة التصنيفات الرئيسية والفرعية مع وجود زر حذف في الأسفل مع تذكير المستخدم من خلال رسالة تأكيدية تذكيريه بأنه لو حذف أحد الفروع سيتم حذف جميع ما يحتويه الفرع من كتب، ثم موافق
هذه أول خطوه: هل أكمل أخي الحبيب أو حسام بقية الشرح:
لست باقي ادخال كتاب، وراو، وتخريج، وشرح، ومعاني، وقراءة للحديث بالصوت
إن أحببت أن أكمل خطوة خطوة فليس عندي مانع فلدي تصور كامل عما يجب أن يكون عليه البرنامج
أما إن أردت الخلاصة فهي كالتالي:
تصفح كتاب ـ بحث عام ـ بحث في الرواة، شرح، تخريج، معاني، نسخ ولصق وبطاقة
هذه هي خلاصة ما سيحتاج له البرنامج في إصداره الاول
أما الإصدار الثاني: فسيتم به أمران تصفح وبحث عام، وبقية الخدمات من معاني ورواه وتخريج وشرح سيتم ادراجها على النص من خلال ادخال زر خدمات النص بعد كل حديث في نفس الصفحة من نفس الكتاب بجوار الحديث كما فعلت التراث مع أحاديث كتاب ظلال القران حيث بجوار كل حديث أورده سيد قطب وضعت زر الحكم، ثم تخرج شاشة مكتوب فيها الحكم، سنفعل نفس الشيئ عند كل حديث لكن شاشة فيها نفس الخدمات الموجودة في صخر بما فيها شجرة الأسانيد
¥