![]() |
|
ما هي الملفات و كيف نتعامل معها ؟؟ - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي التقنية (https://delphi4arab.net/forum/forumdisplay.php?fid=6) +--- قسم : دلفي والتعامل مع الملفات (https://delphi4arab.net/forum/forumdisplay.php?fid=22) +--- الموضوع : ما هي الملفات و كيف نتعامل معها ؟؟ (/showthread.php?tid=712) |
ما هي الملفات و كيف نتعامل معها ؟؟ - TF6M - 24-03-2009 الأن كما قلنا يمكن أن نكتب بملف نصي (قراءة/كتابة/طريقة فتح/تموضع/مسح/غلق) غير الطريقة الإجرائية المعتمدة في المقدمة الأولى !! 2- يمكن أن ننشأ أيضا ملف نصي (و ما الى ذلك) عن طريق المركبات التي توفرها لنا مكتبة Vcl لخاصة بالدلفي : * للقرائة نستعمل (طريقة التحميل المباشر) : LoadFromFile (يجب أن يكون الملف موجود و الى سنتعرض لخطأ 'الملف غير موجود') * للحفظ (طريقة التخزين المباشر) : SaveToFile (يجب أن يكون المسار صحيح و غير محمي كما انه في حالة وجود الملف مسبقا سيتم الكتابة فوقه) * هده المركبات على غرار TMemo , TRichEdit , TComboBox , TListBox (سواء lines/Itmes) المهم مشتقة من صنف TStrings الذي سنراه في الجزء الثالث (بإذن الله) فبنيتها تعتمد على مجموعه من الأسطر 'كنص' أو 'كمجموعة من العناصر' المهم من نمط String . الان هدا مثال على كيفية التعامل مع الملفات النصية بإستخدام المركبات !!! برنامج لحفظ ماكتبناه في Memo و نعيد تحميله لـ ListBox(مع إظافة مباشرة AddStrings) الأن يمكنك الإستغناء على الدوال الجاهزة (Copy / Move /Rename/AssignFile) و تعمل دوال خاصة بك بالطريقتين ؟؟. ما هي الملفات و كيف نتعامل معها ؟؟ - TF6M - 25-03-2009 3- يمكننا الإستغناء أيضا عن المركبات الجاهزة و التي تمكننا من كتابة أو القراءة من ملف نصي !! فإمتداد الملف لا يعني بالظرورة يدل على طبيعته ؟ كيف : - أي ملف من نمط TextFile (الجزء الأول) أو ناتج عن مركب (TStrings) فهو ملف نصي . بما أننا إستخدمنا مركبات من صنف Tstrings فببساطة يمكننا الإستغناء عنها و العمل مباشرة بهذا الصنف !! (الذي يمكننا من الوصول الى الصنف المشتق TstringList) . هذا مثال بسيط يوفر لنا حرية أكثر أمان أكثر حجم أقل لبرنامجنا : كود : procedure TForm1.SaveToClick(Sender: TObject);
var List:TStrings;
begin
List:=TStringList.Create;
List.Add('www.delphi4arab.net');
List.Add('TF6mehboul');
List.SaveToFile(Edit1.Text);
List.Free;
end;في ما بعد سنتعلم كيفية تسير الاخطاء (Try/Except/Finally) التي ستعطي للكود إستقرارية أكبر . ![]() كما نضيف زر أخر Load الدي يقرأ من الملف المحفوظ أولا بالطبع لن أتحقق من وجوده لأنه مثال تعليمي . كود : List:=TStringList.Create;
List.LoadFromFile(Edit1.Text);
ShowMessage(List.Text);
List.Free;سهل أليس كذلك .. هدا هو الكود كامل : كود : var List:TStrings;
procedure TForm1.SaveToClick(Sender: TObject);
begin
List:=TStringList.Create;
List.Add('www.delphi4arab.net');
List.Add('TF6mehboul');
List.SaveToFile(Edit1.Text);
List.Free;
end;
procedure TForm1.LoadClick(Sender: TObject);
begin
List:=TStringList.Create;
List.LoadFromFile(Edit1.Text);
ShowMessage(List.Text);
List.Free;
end;ما هي الملفات و كيف نتعامل معها ؟؟ - abualmonther - 25-03-2009 السلام عليكم شكرا لكم على الدرس لقد نفذته بهذه الطريقة PHP كود : procedure TForm1.SaveToClick(Sender: TObject);إقتباس :في ما بعد سنتعلم كيفية تسير الاخطاء (try/except/finally) التي ستعطي للكود إستقرارية[مع التبسيط والافاضة لو سمحت كى افهم قليلا وشكرا ما هي الملفات و كيف نتعامل معها ؟؟ - TF6M - 25-03-2009 السلام عليكم بارك الله فيك و شكرا على المحاولة الطيبة لكن : 1-أخي abualmonther أولا ملاحظة لماذا إستخدمت الـ Memo ؟؟ 2- يمكنك كما في الجزء التاني من الدرس أن تحمل مباشرة دون اللجوء للصنف TStrings : كود : Memo1.Lines.LoadFromFileكود : Memo1.Lines.SaveToFileمباشرة !! 3- في ما يخص طريقة تسيير الإعتراضات أو الأخطاء ... لدينا صيغتين : كود : Try
//1
Except
//2
End;(1) نقوم بكتابة تعليمات لغرض التنفيذ . (2) نقوم بكتابة تعليمات التي تنفذ في حالة وجود إعتراض لقسم التنفيذ الأول (1). كود : Try
//1
Finally
//2
End;(1) نقوم بكتابة تعليمات لغرض التنفيذ . (2) تنفذ تعليمات هذا القسم سواء كان هناك إعتراض أم لا !! (عامة تستخدم لمناهج الإنشاء و التحرير : Create/Free). تفضل الدرس **** أن يفيدك ... بالتوفيق,, ما هي الملفات و كيف نتعامل معها ؟؟ - chehlet-le3youn - 26-03-2009 السلام عليكم والله موضوع شيق جدا ورائع موفق ان شاء الله انتظرنا مع الاسئلة..:p ما هي الملفات و كيف نتعامل معها ؟؟ - TF6M - 26-03-2009 بعد أن عرفنا ولو بطريقة سطحية على كيفية إنشاء (قراءة / كتابة) ملف نصي فمن الأفضل ان نختم الجزء الأول بتطبيقات بسيطة ترسخ الفهم و عليه : 1- كيف يمكن أن تعمل دالتي CopyTo / MoveTo بالطريقة الأولى . 2- كيف يمكن أن نبحث عن كلمة ما في نص من Memo مثلا وعرضها . 3- كيف يمكننا إستغلال الصنف TStrings لعرض جميع محتويات مجلد ما مع خصائص بسيطة . --------------------------------------------------------------------------------------------- بالتوفيق ,,, كما أني سأجهز الأمثلة مع صور توضيحية إن شاء الله. ما هي الملفات و كيف نتعامل معها ؟؟ - TF6M - 30-03-2009 ننتقل الأن الى النوع التاني من الملفات (الملفات التتابعية) ببساطة هي ملفات لا تعتمد على الأسطر في بينتها (Lines) لكن على حقول (REgistrations) كيف : 1- عن طريق تعريف نمط جديد (Record) و المتغيرات التابعة له تعامل على أساس حقول ! سيتوجب علينا برمجة دوال و إجراءات للتعامل معها . 2- عن طريق الصنف TFileStraem مع نفس الخطوة السابقة (نمط جديد) لكن من ناحية أسرع و أأمن . كيف ... ؟ أولا نفوم بإنشاء "جدول " نمط جديد : كود : Type
TPersFile = Record
LName,FName :String [100]; // ( << 256 char)
Age : Byte;
Men : Boolean;
End;رأيتم هنا إسم الجدول TPersFile له حقول (age,fname,lname,men) . ثم نعرف ملف من هدا النمط و هادا ماميميز هدا الصنف من الملفات : File Of Type الأن نعرف الملف من هدا النمط : كود : SPersFile = File Of TPersFile;الأن ملاحظة بسيط : في الملفات النصية يجب علينا التأكد أولا من وجود الملف لنستطيع فتحه بطريقة (للقراءة فقط) لكن هنا (الملفات التتابعية أو التنائية) لا يهم طبيعة أو طريقة فتح الملف !! . هدا المثال الأول لم أشرحه لأن معظم التعليمات شرحتها سابقا في الملفات النصية فقط سنتعامل الأن بدالتين : Seek/Truncate (تموضع / بتر او قطع). ![]() ما هي الملفات و كيف نتعامل معها ؟؟ - TF6M - 03-08-2009 كتاب بسيط لتلخيص الدرس بصيغة Pdf مرفق باول مشاركة بالتوفيق ,, ما هي الملفات و كيف نتعامل معها ؟؟ - BendaliSoftPro - 12-08-2009 بارك الله فيك ما هي الملفات و كيف نتعامل معها ؟؟ - اسامه الحكيم - 14-05-2012 [color="red"]tf6m مبدع ورائع يا غالى جزاك الله خيرا [/color] |