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

عضو جديد مع سؤال قديم

مغلق
بدأه ابوهاني في 9 أكتوبر 2001 · 6 رد · 713 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اتمنى من الله ان يوفقكم الى ما يحبه ويرضاه

سؤالي في الحقيقة :

كيف يمكنني قراءة اسماء ملفات ذات امتداد معين في دليل البرنامج وسردها في قائمة.

باختصار فانا ارغب في انشاء برنامج Ebook او كتاب الكتروني ولذلك ارغب في سرد ملفات البرنامج والتي سوف تكون في نفس دليل البرنامج في مربع قائمة وعند النقر عليها يظهر النص في الـ Memo مباشرة

اشكر لكم اهتمامكم

#2

مرحبا اخي ابو هاني

لو تكرمت بالتوضيح اكثر فاني والله اجد صعوبة في فهم المطلوب

- هل تريد معرفة لواحق الملفات في مجلد ما .

ارجو ا التوضيح .

#3

اشكر اهتمامك اخي pati

ما ارغب به باختصار هو عمل ما كان يسمى ايام الدوس Dir للملفات ذات امتداد معين في دليل البرنامج وسرد نتيجة البحث هذه في مربع سرد ( listbox ) حيث ان هذا الكتاب عبارة عن عدة اجزاء وكل جزء مكتوب في ملف خاص به مثال الفصل الاول ، الفصل الثاني ... الخ

هذا ولك فائق تحياتي وتقديري.

#4

ساعطيك مجموعة من الادوات المفيدة :

FindFirst

تضع موشر الدليل على اول ملف في الدليل الدي تحدده متلا

لو اردت عرض جميع الملفات في الدليل c:test

ضع

مايلي

اولا عرف ألمتغير

sr:TsearchRec;

تم ضع التالي

FindFirst('c:test*.*',faAnyFile,sr);

حيت تاخد الدالة المعاملات التالية

1- الدليل المراد البحت فيه c:test*.* t

2-نوع الملفات المراد عرضها , بمعني هل تريد عرض جميع الملفات او لا تريد عرض الملفات المخفية او لا تريد عرض ملفات النضام وغير دلك وهي

faReadOnly Read-only files

faHidden Hidden files

faSysFile System files

faVolumeID Volume ID files

faDirectory Directory files

faArchive Archive files

faAnyFile Any file

3- وهو المتغير الدي سوف ترجع فيه النتيجة من نوع TSearchRec ويحتوي على المعلومات التالية(متل امر Dir في Dos ) :

Time: Integer;

Size: Integer;

Attr: Integer;

Name: TFileName;

ExcludeAttr: Integer;

FindHandle: THandle;

FindData: TWin32FindData;

اهم شيئين فيه هو name اسم الملف او الدليل

و Attr الدي تستطيع به تحديد ادا كان ملف او دليل و ياخد القيم

faReadOnly Read-only files

faHidden Hidden files

faSysFile System files

faVolumeID Volume ID files

faDirectory Directory files

faArchive Archive files

faAnyFile Any file

الان اخي العزيز سوف اعطيك الخطوات التي ستجعلك تتحرك داخل اي دليل وتعرض جميع ملفاتك داخل listbox

procedure TForm1.Button1Click(Sender: TObject);

var

sr:TsearchRec ;

begin

FindFirst('c:temp*.*',faAnyFile,sr);

while(FindNext(sr)=0)do//ادهب الى الملف او الدليل الموالي

begin

if(sr.Attr and fadirectory > 0)then // هل هذا الملف او الدليل الحالى هل هو دليل فرعي

begin

//ضع اي شي تريده هنا في حالة وجد دليل فرعي

end

else//ادا لم يكن دليل فرعي فهو ملف

ListBox1.Items.Add(sr.Name);

end;

end;

ايضا قد تحتاج بعض الادوات التالية :

SetCurrentDir(DireName) انقل التحكم الى هذا الدليل متل امر CD في نضام الدوس .

CreateDir(fname) تكوين دليل متل MD

RenameFile تغيير اسم الملف

وشكرا

#5

اشكرك اخي madi

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

#6

السلام عليكم

اخي العزيز اعذرني على الاطالة

قبل كتابة الكود

ضع DriveComboBox1 ListBox1 Button1 edit1

edit ----|اكتب فيها اسم الملف المراد

الكود

Procedure Tform1.FindvirFiles(Path: String);

var

SearchRec: TSearchRec;

Found: Integer;

begin

Found := FindFirst(Path + '*.*' , faAnyFile, SearchRec);

while Found = 0 do

begin

if not (SearchRec.Attr and faDirectory = faDirectory) then

begin

if LowerCase(SearchRec.Name) = LowerCase(edit1.text)then

ListBox1.Items.Add(path + SearchRec.Name);

end

else

begin

if Copy(SearchRec.Name ,1, 1) '.' then

FindvirFiles(Path + SearchRec.Name + '');

end;

Found := FindNext(SearchRec);

end;

FindClose(SearchRec);

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

FindvirFiles(DriveComboBox1.Drive+':');

end;

عن اي استفسار انا في الخدمة

#7

اشكرك اخي الكريمpati والله يعطيك الف عافية على هذا المجهود

هذا الموضوع مغلق.

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