كيف استخرج اسم الملف وامتداده ؟
#1
السلام عليكم ورحمة الله وبركاته

إخواني الأعزاء

لقد قمت بعمل نموذج لإختيار الملفات وتشغليها في أحد البرامج التي قمت بكتابتها

وتبقى عائق صغير جدا لم أستطع أن أحله بشتى الوسائل

نعم أنا متأكد بأنه بسيط وسهل تماما

سأشرح لكم الأمر

عند فتح البرنامج هذه صورته أو النافذه الأساسيه له :

[صورة: firstx.png]

نقوم بالذهاب إلى إعدادات الملفات

ونقوم بالإستعراض واختيار الملفات التي نريدها كما يتوضح بالصورة التاليه :

[صورة: secondi.png]

بعد ذلك نقوم بالضغط على زر عوده

فنرى أن الأزرار التي في النموذج الرئيسي تغيرت خاصية الـ Caption الخاصة بها

إلى مسار الملفات التي تم استعراضها في إعدادات الملفات

[صورة: thirdb.png]

عند الضغط على أي من هذين الزرين سيقوم البرنامج بعمل Execute للمسار الذي هو عباره عن الـ Catption

يبدو الآن أن كل شئ بات واضحا

ماينقصني أو ما أحتاجه هو عند الاستعراض واختيار الملف وتحديد مساره

نقوم بالضغط على زر عودة فتظهر لنا ( مسارات ) الملفات كـ Caption للأزرار

أنا أود أن يظهر ( اسم الملف وامتداده فقط ) وليس مساره كاملا ( أقصد الكابتشن الخاص بالازرار )

حاولت أن أفعل ذلك وعندما أفعله يظهر اسم الملف فقط لكن لا يستطيع استخراجه لانه لا يرى مساره

كيف يمكن حل هده المشكل يا اخوان ؟ Sad

السورس بالمرفقات

مع أطيب التحيه


الملفات المرفقة
.rar   Projects.rar (الحجم : 192.87 ك ب / التحميلات : 46)
الرد
#2
السلام عليكم ... فقط لاحظ :

1- :

ExtractFileName('C:\Tf6\File.txt');1 === > النتيجة : File.Txt

ExtractFileDir('C:\Tf6\File.txt');1 === > النتيجة : C:\Tf6

ExtractFilePath('C:\Tf6\File.txt');1 === > النتيجة : C:\Tf6\1

ExtractFileDrive('C:\Tf6\File.txt');1 === > النتيجة : C

ExtractFileExt('C:\Tf6\File.txt');1 === > النتيجة : txt.

2- عليك بالتقليل من المتغيرات قدر الإمكان !!


بالتوفيق ,,
I'M Fly Like A G6

الرد
#3
هذا حل بالسريع على محرر النصوص Notepad لاني لااملك الدلفي هنا :

يمكنك التصريح ب Global Var وليكن سلسلة نصية تحفظ فيه إسم و مسار الملف

* لماذا استعمات مكونين اثنين من ال TOpenDialog , مكون واحد يفي بالغرض , ومن المستحسن ان تنشئه في وقت التنفيذ RunTime وتحرره طبعا .
انظر الكود




PHP كود :
var
  
Form1: TForm1;
  
_FileName,FileName:String;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
close
;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
         
if opendialog1.Execute then
         _FileName 
:= opendialog1.FileName;
         
edit1.text:= _FileName;
         
button4.caption :=ExtractFileName(_FileName);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
         
if opendialog1.Execute then
         Filename 
:= opendialog1.FileName;
         
edit2.text:= Filename;
         
button5.caption := ExtractFileName(Filename);
end;


procedure TForm1.Button4Click(Sender: TObject);
begin
ShellExecute
(0, 'open', pChar(_FileName), nil, nil, SW_SHOW);
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
ShellExecute
(0, 'open', pChar(FileName), nil, nil, SW_SHOW);
end; 
الرد
#4
tf6mehboul كتب :السلام عليكم ... فقط لاحظ :

1- :

Extractfilename('c:\tf6\file.txt');1 === > النتيجة : file.txt

extractfiledir('c:\tf6\file.txt');1 === > النتيجة : c:\tf6

extractfilepath('c:\tf6\file.txt');1 === > النتيجة : c:\tf6\1

extractfiledrive('c:\tf6\file.txt');1 === > النتيجة : c

extractfileext('c:\tf6\file.txt');1 === > النتيجة : txt.

2- عليك بالتقليل من المتغيرات قدر الإمكان !!


بالتوفيق ,,

بارك الله فيكم اخي الكريم...
اكواد فعلا مهمة, جزاكم الله خيرا
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد
#5
آسف إخواني على الرد المتأخر

جزاكم الله خيرا وكتر من امثالكم

تم حل المشكل وفقكم الله
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم