برنامج المفكرة

العمليات التي يمكن القيام بها في البرنامج:
  1. فتح ملف نصي
  2. حفظ ملف نصي
  3. قص/ نسخ/ لصق نص
  4. تحديد كامل النص في صندوق النصوص
Screenshot of our example



كتابة الكود:
  1. استدعاء مكتبة الدخل والخرج من اجل التعامل مع الملفات:
  2. using System.IO;
  3. كود فتح ملف نصي:
  4. 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();
    وأخيراً يجب اغلاق الملف بعد الانتهاء من التعامل معه وهذا امر مهم جداً كي لا تنتج اخطاء في البرنامج.
      
  5. كود حفظ ملف نصي:
  6. 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 من أجل الكتابة في الملف.
      
  7. كود قص النصوص:
  8. 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 تمثل النص المحدد في صندوق النص, وطبعاً نحذف النص عن طريق جعله يساوي قيمة نصية فارغة "".
      
  9. كود نسخ النص:
  10. private void btnCopy_Click(object sender, EventArgs e)
    {
        if (txtLoadFile.SelectionLength > 0)
        {
            Clipboard.Clear();
            Clipboard.SetText(txtLoadFile.SelectedText);
        }
    }
    الشرح:
    نقوم بنفس الخطوات التي قمنا بها عند قص النص مع فارق وحيد هو انه عند نسخ النص فإننا لا نحذفه وإنما فقط نضع النص المحدد في الحافظة.
      
  11. كود لصق نص:
  12. 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 تمثل النص الموجود في الحافظة.
      
  13. كود تحديد كل النص الموجود في صندوق النص:
private void btnSelectAll_Click(object sender, EventArgs e)
{
    txtLoadFile.SelectAll();
    txtLoadFile.Focus();
}

الشرح:
فقط قمنا باستدعاء التابع SelectAll الخاص بصندوق النص وثم نقوم بجعل التركيز على صندوق النص عن طريق التابع Focus والخاص ايضاً بصندوق النص.


2 تعليقات

الفـ... الف شكر لك اخوي عبدالله
جعله الله في موازين حسناتك

رد

بوركت /سباسيبا (شكرا بالروسية)

رد

إرسال تعليق