العمليات التي يمكن القيام بها في البرنامج:
- فتح ملف نصي
- حفظ ملف نصي
- قص/ نسخ/ لصق نص
- تحديد كامل النص في صندوق النصوص
كتابة الكود:
- استدعاء مكتبة الدخل والخرج من اجل التعامل مع الملفات:
- كود فتح ملف نصي:
- كود حفظ ملف نصي:
- كود قص النصوص:
- كود نسخ النص:
- كود لصق نص:
- كود تحديد كل النص الموجود في صندوق النص:
using System.IO;
private void btnLoad_Click(object sender, EventArgs e)
{
OpenFileDialog brw = new OpenFileDialog();
brw.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
DialogResult res= brw.ShowDialog();
if ((res == DialogResult.OK) && (brw.FileName.Trim().Length != 0))
{
StreamReader s = new StreamReader(brw.FileName);
string txt = s.ReadToEnd();
txtLoadFile.Text = txt;
this.Text = brw.FileName;
s.Close();
}
}
الشرح:
OpenFileDialog brw = new OpenFileDialog();
انشئنا كائن OpenFileDialog الذي يمكننا من استعراض الملفات على الكمبيوتر لاختيار الملف الذي نريد فتحه.
brw.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
هنا قمنا بتحديد انواع الملفات التي يمكن استعراضها حيث قمنا باختيار الملفات النصية التي لها اللاحقة *.txt وايضاً حددنا خيار آخر يمكننا من استعراض جميع الملفات *.*.
DialogResult res= brw.ShowDialog();
متحول من النوع DialogResult سيحمل قيمة الزر الذي ضغطه المستخدم يعني هل ضغط على موافق ام إلغاء الامر.
if ((res == DialogResult.OK) && (brw.FileName.Trim().Length != 0))
إذا تم الضغط على زر موافق وكان طول اسم الملف اكبر من الصفر (تم اختيار ملف) عندها يمكن فتح الملف الذي تم اختياره.
StreamReader s = new StreamReader(brw.FileName);
هنا انشئنا كائن StreamReader لقراءة محتويات الملف المحدد.
string txt = s.ReadToEnd();
txtLoadFile.Text = txt
قراءة محتويات الملف ووضعها في المتحول txt حيث استخدمنا التابع ReadToEnd الموجود في الكلاس StreamReader وذلك لقراءة محتويات الملف إلى النهاية اي كامل الملف, ثم تم وضع محتويات الملف في صندوق النصوص.
s.Close();
وأخيراً يجب اغلاق الملف بعد الانتهاء من التعامل معه وهذا امر مهم جداً كي لا تنتج اخطاء في البرنامج.
private void btnSave_Click(object sender, EventArgs e)
{
SaveFileDialog brw = new SaveFileDialog();
brw.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
DialogResult res = brw.ShowDialog();
if ((res == DialogResult.OK) && (brw.FileName.Trim().Length != 0))
{
StreamWriter s = new StreamWriter(brw.FileName);
s.Write(txtLoadFile.Text);
this.Text = brw.FileName;
s.Close();
}
}
الشرح:
SaveFileDialog brw = new SaveFileDialog();
انشئنا كائن SaveFileDialog الذي يمكننا من استعراض الملفات على الكمبيوتر وذلك من اجل اختيار اسم ومكان الملف الذي نريد حفظه.
StreamWriter s = new StreamWriter(brw.FileName);
هنا انشئنا كائن StreamWriter لكتابة نص إلى الملف المحدد.
s.Write(txtLoadFile.Text);
قمنا باستخدام التابع Write الموجود في الكلاس StreamWriter من أجل الكتابة في الملف.
private void btnCut_Click(object sender, EventArgs e)
{
if (txtLoadFile.SelectionLength > 0)
{
Clipboard.Clear();
Clipboard.SetText(txtLoadFile.SelectedText);
txtLoadFile.SelectedText = "";
}
}
الشرح:
if (txtLoadFile.SelectionLength > 0)
اولاً قمنا باختبار طول النص المحدد هل هو اكبر من الصفر ام لا من اجل تنفيذ عملية القص حيث يجب من اجل تنفيذ عمليات النسخ والقص ان يوجد نص محدد (معلم باللون الازرق) في صندوق النصوص, وقمنا بذلك عن طريق اختبار الخاصية SelectionLength الذي يعيد طول النص المحدد.
Clipboard.Clear();
Clipboard.SetText(txtLoadFile.SelectedText);
من اجل التعامل مع الحافظة يوجد الكلاس Clipboard الذي يمكننا من جلب ووضع محتويات في الحافظة. وعملية قص النص تقوم بحذف النص المحدد ووضعه في الحافظة.
ومن اجل وضع النص في الحافظة يجب اولاً تفريغ الحافظة من محتوياتها عن الطريق التابع Clear() الموجود في الكلاس Clipboard, ثم قمنا بوضع النص المحدد في الحافظة عن طريق التابع SetText الموجود في الكلاس Clipboard.
txtLoadFile.SelectedText = "";
اخيراً نحذف النص المحدد عن طريق الخاصية SelectedText حيث ان هذه الخاصية تعيد لنا قيمة String تمثل النص المحدد في صندوق النص, وطبعاً نحذف النص عن طريق جعله يساوي قيمة نصية فارغة "".
private void btnCopy_Click(object sender, EventArgs e)
{
if (txtLoadFile.SelectionLength > 0)
{
Clipboard.Clear();
Clipboard.SetText(txtLoadFile.SelectedText);
}
}
الشرح:
نقوم بنفس الخطوات التي قمنا بها عند قص النص مع فارق وحيد هو انه عند نسخ النص فإننا لا نحذفه وإنما فقط نضع النص المحدد في الحافظة.
private void btnPaste_Click(object sender, EventArgs e)
{
if (Clipboard.ContainsText() == true)
{
txtLoadFile.SelectedText = Clipboard.GetText();
}
}
الشرح:
if (Clipboard.ContainsText() == true)
من اجل لصق النص الموجود في الحافظة يجب اولاً التأكد من انه يوجد نص في الحافظة وذلك عن طريق التابع ContainsText الموجود في الكلاس Clipboard حيث يعيد هذا التابع قيمة bool يعني اما true او false.
txtLoadFile.SelectedText = Clipboard.GetText();
اخيراً نقوم بلصق النص عن طريق اسناد قيمة التابع SelectedText (الذي يعيد لنا النص المحدد) إلى قيمة النص الموجود في الحافظة والذي نحصل عليه من التابع GetText الموجود في الكلاس Clipboard والذي يعيد لنا قيمة string تمثل النص الموجود في الحافظة.
private void btnSelectAll_Click(object sender, EventArgs e)
{
txtLoadFile.SelectAll();
txtLoadFile.Focus();
}
الشرح:
فقط قمنا باستدعاء التابع SelectAll الخاص بصندوق النص وثم نقوم بجعل التركيز على صندوق النص عن طريق التابع Focus والخاص ايضاً بصندوق النص.
2 تعليقات
الفـ... الف شكر لك اخوي عبدالله
ردجعله الله في موازين حسناتك
بوركت /سباسيبا (شكرا بالروسية)
ردإرسال تعليق