ورود

View Full Version : جستجويه فايلها با سرعت بسيار بالا !؟ حداقل 30000 تا در دقيقه‌!؟



FiACKER
یک شنبه 17 آذر 1387, 22:03 عصر
سلام

به دليل اينكه نتونستم در تالار اصلي مباحث دلفي تاپيك رو بزنم ، اينجا تاپيك رو ساختم !
به هر حال ببخشيد !
اگه كسي از مديران لازم دونست ، لطف كنن و انتقال بدن به بخشه مربوطه.

اقا من وي بي كار مي كنم و يه پرو‍ژه دارم كه مي خوام بيارمش تويه دلفي !
دلفي بلدم ! ولي نه زياد !

حالا براي اينكه ديگه وي بي رو ترك كنم و به دنيايه شيرينه كاملا دلفي وارد بشم نياز به اين سورس دارم ! بقيه ي پروژه رو تقريبا خودم مي تونم بنويسم.

برنامه اي كه من تويه وي بي دارم ، يه بخشش بين فايلهاي سيستم جستجو مي كنه(البته خودم ننوشتم...سورسشو از جايي دانلود كردم) !
البته لازمه كه سايز همه ي فايلهايي كه در يه درايو هست چك بشه و بر اين اساس هست كه جستجو مي كنه ! يعني كاري با نام فايل نداره !
حالا سرعت اين جستجو اينقدر بالاست كه حتي با قرار دادن يه سري دستورات براي چك سايز و ... هر فايل ، مي تونه 30 تا 50 هزار فايل رو در يك دقيقه تا 2 دقيقه اسكن كنه !

حالا يه همچين سورسي رو تويه دلفي لازم دارم !

تويه سايت جستجو كردم ولي سرعت برنامه هاي جستجو خيلي پايين بود !

حالا اگه كسي همچين سورسي داره لطف كنه بزاره كه خيلي كارم گيره !

يا حداقل كسي مي تونه اين كارو در دلفي تويه ترد عملي كنه ؟

ممنون

vcldeveloper
دوشنبه 18 آذر 1387, 00:06 صبح
عملی کردن رو که میشه، فقط میمونه که کی وقت و حوصله این رو داره که بشینه یک نمونه کامل از جستجوی فایل با استفاده از Threadها را بنویسه!
بهتره خودتون کار را شروع کنید، و سوالتان را به چند بخش تقسیم کنید.

FiACKER
سه شنبه 19 آذر 1387, 03:38 صبح
قبلا تويه وي بي يه بار خواستم با ترد كار كنم ، اما فقط كدهايه ساده و كم حجم و بدون استفاده از توابع رو مي تونست اجرا كنه !
اگه غير از اين رو انجام مي دادم ، پيغام خطا مي داد ! مثله اينكه اشكال از حافظه كمي بود كه به ترد تخصيص داده شده بود ! البته فكر مي كنم !

حالا كه مي خوام بيام با دلفي زندگي كنم براي اين سوال پيش اومده كه ايا كار كردن با تردها در دلفي ، مثل وي بي هست ؟
يا دسته برنامه نويس بازتر هست و اجازه ي هر كاري رو به برنامه نويس مي ده ؟
از دادن كه مي ده ! ولي چطوره !؟ پيچيدگي زيادي داره ؟
يعني مي شه من فقط يه تابع رو بدم و هر چيزي درون اين تابع هست ، درون تردمون اجرا بشه ؟


با اينكه اينجا جاش نيست ولي :
در مورد پروسس اينجكشن تا جايي كه من متوجه شدم برنامه نويس فقط اجازه داره از توابع Api براي هر كاري استفاده كنه (البته حلقه و شرط هم مشكلي نداره...) !
ايا مي شه علاوه بر تابعي كه درون پروسه تزريق مي شه توابع ديگري هم درونه همون پروسه تزريق بشه و بين اين توابع تعامل وجود داشته باشه و بتونن با هم ارتباط برقرار كنن ؟
يا روش ديگري داره !؟ لطفا بفرماييد .

با تشكر

vcldeveloper
چهارشنبه 20 آذر 1387, 02:28 صبح
درباره پشتیبانی دلفی از Thread، دو امکان وجود داره:
1- استفاده از کلاس TThread که دلفی در اختیار شما میزاره، و Thread را بصورت شی گرا به شما ارائه میکنه.
2- فراخوانی توابع API ویندوز بطور مستقیم. در اینصورت باید با توابع مربوطه در ویندوز آشنا باشید.

در هر حال، دلفی اون چیزی که ویندوز در سطح User Mode برای کار با Threadها در اختیار برنامه نویس قرار میده را بطور کامل در اختیار شما میزاره.



با اينكه اينجا جاش نيست ولي :
در مورد پروسس اينجكشن تا جايي كه من متوجه شدم برنامه نويس فقط اجازه داره از توابع Api براي هر كاري استفاده كنه (البته حلقه و شرط هم مشكلي نداره...) !
ايا مي شه علاوه بر تابعي كه درون پروسه تزريق مي شه توابع ديگري هم درونه همون پروسه تزريق بشه و بين اين توابع تعامل وجود داشته باشه و بتونن با هم ارتباط برقرار كنن ؟
يا روش ديگري داره !؟ لطفا بفرماييد .
همانطور که خودتون هم اشاره کردید، این جاش اینجا نیست، و باید در یک تاپیک جداگانه مطرح بشه.

matinebi
سه شنبه 10 دی 1387, 19:05 عصر
دوستان اگه کسی سرس آماده داره یا اگه بتونین کد رو بنویسید خیلی عالی میشه

mossaferin
شنبه 14 دی 1387, 19:40 عصر
سلام

http://www.delphiarea.com/products/delphi-components/findfile/

این یه لیک ، و یه کامپوننت اپن سورس برای جستجوی فایلها با سرعت زیاد و پشتیبانی از ترد

Nima NT
چهارشنبه 18 دی 1387, 02:02 صبح
میتونی از کامپوننت DiskControls هم استفاده کنی , به درد یاد گرفتن دلفی نمیخوره ولی کارت رو راه می اندازه.