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

التعامل مع الملفات النصية

بدأه علي .ع في 19 مارس 2009 · 7 رد · 3,181 مشاهدة · في Delphi .NET/PRISM
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

اليوم سنتطرق الى موضوع جديد وهو الملفات النصية وكيفية التعامل معها

البرنامج بسيط ولا يتطلب الكثير

اولا نبدا مشروع جديد

ونضع فيه مكون textBox وmenuStrip

نغيير الخاصية multiline الى True للمكون textbox

ثم نتقل للقائمة menuStrip

ونقوم بانجاز التالي

قائمة ملف تحتوي

جديد

حفظ

حفظ باسم

-

خروج

اما القائمة تحرير فتحتوي على

تحديد الكل

قص

نسخ

لصق

قائمة مساعدة

حول البرنامج

ونسقه كما في الصورة

post-112245-1237448754_thumb.jpg

بعد الانتهاء من ذلك الان علينا اضافة

System.IO

الى القسم Uses

نقوم بعد ذلك الى الانتفال الى القائم جديد وننقر نقر مزدوج ليفتح محرر الكود ونكتب

textBox1.Clear

ثم نقوم ببرمجة قائمة الخروج بنفس الطريقة

ونكتب الكود التالي

Application.Exit;

ثم نقوم باضافة مكون saveFileDialog

ونصرح بالمتغيير في القسم protected كما يلي

وسنقوم بفضل هذا المتغيير بالكتابة في الملفات النصية

  protected
	method Dispose(disposing: Boolean); override;
var 
	stmw :StreamWriter;

ننتقل الى حدث الضغط حفظ باسم في القائمة

ونكتب الكود

saveFileDialog1.ShowDialog();
				stmw := new StreamWriter(saveFileDialog1.FileName);
				stmw.WriteLine(textBox1.Text);
				save := true;
				stmw.Close();

يقصد بهذا الكود

1 فتح نافذة الحفظ

2 انشاء كائن من الصنف StreamWriter

3 سوف يحفظ هذا الكائن القيمة الموجودة في المكون textbox

4 اغلاق المكون

ننتقل الان الى الحفظ المباشر نرى في الكثير من محررات النصوص ان الحفظ في المرة الاولى يظهر لنا نافذة الحفظ وعمليات الحفظ الموالية لا يظهر هذه النافذة فكيف يتم ذلك

نقوم بما يلي

اضافة متغيرين سنستخدمها في هذه العملية في القسم protected

	stmw :StreamWriter;
	save :Boolean;
	fil: String;

ونكب في حدث الضغط على حفظ في القائمة الكود التالي

if save = false then
			begin
				saveFileDialog1.ShowDialog();
				stmw := new StreamWriter(saveFileDialog1.FileName);
				stmw.WriteLine(textBox1.Text);
				save := true;
				stmw.Close(); 


			end

				else
				begin
				 stmw := new StreamWriter(fil);
				 stmw.WriteLine(textBox1.Text);
				 stmw.Close();
				end;

			fil := saveFileDialog1.FileName;

معنى الكود اذا كان المتغيير Save قيمته False (يعني لم نقم بعملية حفظ سابقا)

نقوم بنفس العملية التي قمنا بها في الحفظ باسم بعدها سياخذ المتغيير Fil مسار الملف كقيمة له

اما اذا كنا قد حفظنا الملف سنحفظ التغيير في المسار الموجود في المتغيير fil

ملاحظة يجب علينا ايضا ان نظيف في كود الحفظ باسم

save :=true

ليصبح كما يلي

saveFileDialog1.ShowDialog();
				stmw := new StreamWriter(saveFileDialog1.FileName);
				stmw.WriteLine(textBox1.Text);
				save := true;
				stmw.Close();

الان ننتقل الى كيفية فتح ملف موجود

نقوم باضافة مكون openFileDialog ومتغيير في القسم protected كما يلي

 stmw :StreamWriter;
	save :Boolean;
	fil: String;
stmr:StreamReader;

ونكتب في حدث الضغط

 save := false;
			openFileDialog1.ShowDialog();
			stmr := new StreamReader(openFileDialog1.FileName);
			textBox1.Text := stmr.ReadToEnd();
			save := true;
			fil := openFileDialog1.FileName;

المقصود بهذا الكود

نغيير قيمة المتغيير save الى false لكي لا يختلط الامر مع الملف الذي سبقه ذ

نفتح نافذة فتح ملف

نقوم بانساء كائن جديد من الصنف StreamReader ليمكننا من القراءة من الملفات النصية واخذ مسار الملف المحدده في نافذة الفتح

في السطر الذي يليه يقوم المكون textbox باخذ القيمة الموجودة في المتغيير Stmr

ثم نغلق الكائن

وياخذ المتغيير Save القيمة true

والمتغيير fil ياخذ المسار الذي حددناه لنافذة فتح الملف

نبدا الان في قائمة تحرير

ونبدا بتحديد الكل ونكتب الكود

textBox1.SelectAll;

ننقل الى القص

textBox1.Cut;

ثم النسخ

textBox1.Copy;

اخير اللصق

 textBox1.Paste;

اما قائمة المساعدة يمكن ان تعرف بنفسك والبرنامج باي طريقة تعجبك

وباذن الله سوف نقوم ببعض الاضافات في المستقبل القريب ان شاء الله

وفقنا الله واياكم

WindowsApplication1.rar

تم تعديل هذه المشاركة بواسطة علي .ع في 19 مارس 2009 في 12:13

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#2

بارك الله فيك اخوي علي

فضلا لا امرا يا ليت تعدل الـ size لكي يكون الكود واضحا .

ايضا اتمنى توضيح هل التطبيق على win32 ام website

ولك خالص الشكر والتقدير .

#3
اقتباس
win32 ام website

:nose_patch: :nose_pick:

#4

غيرنا اخي ابو محمد بارك الله فيك على المرور وانت تامر اخي

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

الموضوع على win form

تم تعديل هذه المشاركة بواسطة علي .ع في 19 مارس 2009 في 13:20

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#5
زكيري عبد العالي كتب:
:nose_patch: :nose_pick:

لم اتعامل في الفيجوال ستديو الا مع website

طيب شوف السؤال الثاني اخوي زكيري

اخوي علي ايش الفرق بين winform و win32

#6

باختصار شديد :

win 32*- يعمل على مكتبات vcl الموجودة في كل اصدارات الدلفي .

vcl application*-

vcl.net هي مكتبات جديدة وضعت في الدلفي نت وعملها مثل .net ونجدها ابتداءا من دلفي 8 -- 2009

winform تعمل منصة دوت نت التابعة لي ميكروسفت اي بواجهة vs وقد كانت محاولت ادماجها في الدلفي اصدار 2006 لكن توفقت لكونها بها الكثير من الاخطاء

و الله اعلم .

#7

شكرا على .ع بس ملحوظة عند استدعاء ShowDialog المفروض تختبر القيمة العائدة DialogResult ان كانت OK و OpenFile بتعيد stream ليك من الفايل المختار

دروس WinForms مترجمة بال C#

دروسها الأصلية من ZetCode

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 19 مارس 2009 في 18:03

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#8

بوركت اخي احمد

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

وما نقدمه محض اجتهاد قد نصيب وقد نخطا

وفقنا الله واياكم

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

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