الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

البحت عن ملفات معينة في القرص الصلب

بدأه HMAMH في 3 مارس 2010 · 4 رد · 787 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لسلام عليكم ورحمة الله وبركاته

كيف يمكنني الحصول على مسارات لملفات معينة داخل القرص الصلب

لتوضيح اكثر :

مثلا نريد ان ننشاء برنامج بدلفي يحتوي على listbox و button1 عند الضغط على الـ button1 يقوم البرنامج بالبحت عن ملفات من نوع jpg في الاقراص الصلب و يضع مسارات هده الصور في listbox

اي يبحت على جميع الملفات الموجودة في الاقراص الصلب و التي هي من النوع jpg

#2

أخي الكريم

استخدم الإجراء التالي

procedure FileSearch(const PathName, FileName : string; list : Tlistbox; const InDir : boolean);
var Rec  : TSearchRec;
    Path : string;
begin
  Path := IncludeTrailingBackslash(PathName);
  if FindFirst(Path + FileName, faAnyFile - faDirectory, Rec) = 0 then
  try
    repeat
      List.Items.Add(Path + Rec.Name)
    until FindNext(Rec) <> 0;
  finally
    FindClose(Rec);
  end;
  If not InDir then
    Exit;
  if FindFirst(Path + '*.*', faDirectory, Rec) = 0 then
  try
    repeat
      if ((Rec.Attr and faDirectory) <> 0)  and (Rec.Name<>'.') and (Rec.Name<>'..') then
        FileSearch(Path + Rec.Name, FileName, list, True);
    until FindNext(Rec) <> 0;
  finally
    FindClose(Rec);
  end;
end;

ثم قم بإستدعاءه على الشكل التالي على فرض بأن القسم الذي سيتم البحث فيه هو C

filesearch('c:\','*.jpg',listbox1,true) ;

أرجو الإستفادة

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#3

بارك الله فيك على المجهود

اخي ممكن تشرح ما فائدة المتغير InDir وكيف يعمل ؟

اخي اين اجد الشروحات حول الدوال والإجرءات التي تستدعي نفسها ؟

بالنسبة للمتغير InDir متي ترجع قيمته false ?

تم تعديل هذه المشاركة بواسطة HMAMH في 3 مارس 2010 في 23:06

#4
HMAMH كتب:

الله ينورك نعم تستحق رتبة خبير بجدارة

شكرا لك اخي الكريم :blush:

الأجراء مأخوذ من delphi about يمكنك مشاهدة المثال و شرح عنه هنا

بالنسبة للمعاملات التي يستخدمها الإجراء

pathname

يستخدم لتحديد مسار البحث

filename

يستخدم لتحديد اسم الملف مع اللاحقة و يمكن إستخدام الرمز * لدلالة على مجموعة مجهولة من الأحرف ... تماما كعملية البحث في ويندوز

list

لعرفض النتيجة

indir

أمكانية البحث في المجلدات الفرعية .. في حال اخذ القيمة true فسيتم البحث داخل المجلدات الفرعية للمسار المحدد .. اما في حال اخذ القيمة false فسيتم البحث في المسار المحدد فقط

و تم استخدام findfirst و findnext للبحث عن الملف

ستجد شرح مفصل في الرابط السابق

أرجو الإستفادة

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#5

شكرا بارك الله فيك

جزاك الله خيرا

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…