delphi4arab منتديات دلفي للعرب

نسخة كاملة : [PracticalWork_01] البحث عن الملفات المكررة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله
المطلوب في هذا العمل:
- كتابة خوارزمية صحيحة لاكتشاف الملفات المكررة في جذر مسار محدد
- للمتميزين: مطلوب أسرع خوارزمية ممكنة
المدة: 15 يوم

الشروط:
- استخدام بصمة MD5 للفحص (كبداية)
- تابع لقياس سرعة الفحص
- عدم استخدام مكونات خارجية
- تطرح الملفات التنفيذية فقط وبعد التقييم يطرح السورس
المثال مرفق.

للدعم:
- للبحث عن الملفات
- بصمة MD5 من هنا أو هنا
- لقياس المدة المستغرقة
وتذكروا أن المبرمج المحترف مبرمج كسول!
السلام عليكم و رحمة الله
للتذكير...
هل من مشارك ؟ اول مشاركة تجعلك تربح سيارة Hummer Smile

بالتوفيق ان شاء الله
للاسف اخوانى لا يتوفر الوقت ...
ان شاء الله فى الصيف ان كان كل شىء على مايرام ساحاول

كود :
هل من مشارك ؟ اول مشاركة تجعلك تربح سيارة [color=Green]Hummer [/color]

beta او pro :bye1:
H3 فاز بها AvimimuS، فهنيئا له :laugh:
[صورة: Hummer_H3_84.jpg]
المحاولة... التجربة... الخطأ...النجاح...ثم اكتساب Knowhow.... أغلى من أي Hummer Smile
إقتباس :H3 فاز بها AvimimuS، فهنيئا له
:thumbsup::tong:

اسف المثال مزال يحتاج بعض العمل فهو يحتوي علي العديد من الاخطاء .....:rtfm3:
إقتباس :اسف المثال مزال يحتاج بعض العمل فهو يحتوي علي العديد من الاخطاء .....
لاحظت ذلك Smile أيضا حاول المرور على الملفات من خلال Loop واحدة
---
ألقيت نظرة أقرب على مثالك AvimimuS
هناك خلل في البحث عن الملفات، حيث يقوم الإجراء SearchAndGetPropertiesOfFile بالبحث في مجلد فرعي واحد فقط
الطريقة بأن تجعل التابع يستدعي نفسه كلما وجد مجلد آخر، وبذلك يكون البحث Recursive
استخدام Threads فكرة ممتازة Smile
محاولة جيدة AvimimuS بالتوفيق.
انتهت مدة التمرين، ومن أراد المحاولة فله ذلك
قبل أن أطرح الفكرة هناك شيء أود أن أنبه عليه:
عندما قلت:
إقتباس :وتذكروا أن المبرمج المحترف مبرمج كسول!
كسول ليس بمعنى أن لا يشارك :laugh:
بل بمعنى أنه يستخدم ما توصلت إليه الخبرات السابقة ليحصل على نتيجة أفضل في وقت أقل بأقل جهد Smile
ومن الخبرات السابقة التوابع والإجراءات التي توفرها مكتبة دلفي بما فيها VCL، توابع، إجراءات، أنماط...
ومن الأنماط TStringList الشهير الذي يحتوي على خاصية لكشف العناصر المكررة
يمكن أن نستغل هذه الخاصية مع إجراء للمرور على جميع ملفات الجذر بشكل Recursive مرة واحدة...
كيف ذلك؟
أولا ننشئ النمط ونجعله يرفض العناصر المكررة:
PHP كود :
DupList := TStringList.Create;
  
DupList.Sorted := true;
  
DupList.Duplicates := dupError; 
أجل dupError ليرفضها ويرسل رسالة خطأ!
ثم نمر من خلال جميع ملفات الجذر، وندفع البصمات (Hash) إلى DupList
لكنها ستثير خطأ عند تلقي نفس البصمة؟
يتبع...Smile
kachwahed كتب :
لاحظت ذلك Smile أيضا حاول المرور على الملفات من خلال Loop واحدة
---
ألقيت نظرة أقرب على مثالك AvimimuS
هناك خلل في البحث عن الملفات، حيث يقوم الإجراء SearchAndGetPropertiesOfFile بالبحث في مجلد فرعي واحد فقط
الطريقة بأن تجعل التابع يستدعي نفسه كلما وجد مجلد آخر، وبذلك يكون البحث Recursive
استخدام Threads فكرة ممتازة Smile
محاولة جيدة AvimimuS بالتوفيق.

اخي كاش واحد :
هل جربت المثال ..؟؟؟
لايوجد خلل ! الاجراء يبحث في جميع المجلدات الفرعية .
-الاجراء يقوم بالبحث في الملفات الموجودة في مجلد ما بعدما ينتهي يفحص اذا كان هناك مجلد فرعي وهكذا
مثلا يبحث في C:\WINDOWS ثم في مجلد System32 حتي يجد جميع الملفات الموجودة في هذا المجلد ثم ينتقل الي مجلد repair وهكدا ...
السلام عليكم

1- مقارنة برنامج AvimimuS بـ Easy Duplicate Finder & Duplicate File Finder
- البحث فقط على *.exe

Easy Duplicate Finder

[صورة: 64523978.gif]

Duplicate File Finder

[صورة: 53961027.gif]

SDF by AvimimuSSmile

[صورة: 89986813.gif]

ملاحظات فقط ! & يمكن هناك خلل في تزامن ؟
الـ THread في ما يخص إستجابة زر Pause , بالتوفيق ,,
إقتباس :مقارنة برنامج avimimus بـ easy duplicate finder & duplicate file finder
بارك الله فيك اخي الكريم علي المقارنة

لاادري علي مادا تعتمد هده البرامج في المقارنة
إقتباس :ملاحظات فقط ! & يمكن هناك خلل في تزامن ؟ & nember of file & elapased time

نعم لاحظت تلك الاخطاء لكن لضيق الوقت .... ان وجدت بعض الوقت ساحاول ان اصلحها ان شاء الله

بارك الله فيك علي الملاحظا
ت
الصفحات : 1 2