الإرشادات التفصيلية: معالجة الملفات باستخدام أساليب NET Framework.

توضح هذه المعاينة كيفية فتح و قراءة ملف باستخدام فئة StreamReader ، و تتحقق لمعرفة ما إذا كان يتم الوصول إلى الملف و البحث عن سلسلة داخل الملف المقروء مع مثيل فئة StreamReader و الكتابة إلى الملف باستخدام فئة StreamWriter .

ملاحظة

قد تختلف الخيارات المتوفرة في مربعات الحوار, و أسماء ومواقع قوائم الأوامر التي تراها عن ما هو مفسر في التعليمات, و ذلك حسب إعدادات المشغل الخاصة بك أو الإصدار. تمت كتابة صفحة التعليمات هذه مع وضع إعدادات التطوير العامة في الاعتبار. لتغيير الإعدادات الخاصة بك, اختر إعدادات الاستيراد و التصدير ضمن القائمة أدوات . لمزيد من المعلومات، راجع العمل مع إعدادات.

إنشاء التطبيق

ابدأ Visual Studio ، ثم ابدأ المشروع بواسطة إنشاء نموذج يمكن أن يستخدمه المستخدم للكتابة إلى ملف معيّن .

لإنشاء المشروع

  1. من قائمة ملف، اختر فوق مشروع جديد.

  2. في جزء مشروع جديد ، انقر فوق تطبيق الـ Windows.

  3. في صندوق الاسم اكتب MyDiary و انقر فوق‏‏موافق.

    Visual Studio يضيف إلى المشروع مستكشف الحلول, و يفتح مصمم Windows Forms .

  4. إضافة عناصر التحكم الموجودة في الجدول التالي للنموذج و تعيين القيم المقابلة للخصائص الخاصة بهم .

    الكائن

    Properties

    Value

    Button

    الاسم

    Text

    إرسال

    إرسال الإدخال

    Button

    الاسم

    Text

    Clear (مسح)

    مسح الإدخال

    TextBox

    الاسم

    Text

    Multiline

    Entry

    الرجاء إدخال شيء ما.

    False

الكتابة إلى الملف

لإضافة القدرة على الكتابة إلى ملف بواسطة التطبيق، استخدم فئة StreamWriter . و قد تم تصميم StreamWriter لناتج الحرف بترميز محدد ، بينما فئة Stream مصممة لمُدخل و مخرج البايت . استخدم StreamWriter لكتابة أسطر المعلومات إلى ملف النص القياسي . و لمزيد من المعلومات عن فئة StreamWriter ، راجع StreamWriter.

لإضافة وظائف الكتابة

  1. من قائمة عرض ، اخترالتعليمات البرمجية لفتح محرر التعليمات برمجية.

  2. لأن التطبيق يشير إلى مساحة الاسم System.IO قم بإضافة الكشوفات التالية في بداية التعليمات البرمجية الخاصة بك ، قبل تعريف الفئة للنموذج الذي يبدأ Public Class Form1.

    Imports System
    Imports System.IO
    

    قبل الكتابة إلى ملف, يجب عليك إنشاء مثيل لفئة StreamWriter .

  3. من قائمة عرض اخترالمصمم للعودة إلى مصمم Windows Forms. انقر نقر مزدوج على زر Submit لإنشاء معالج حدث Click الخاص بالزر ثم أضف التعليمات البرمجية التالية .

    Dim fw As StreamWriter
    

ملاحظة

سوف ترجع بيئة تطوير ‏‫Visual Studio المتكاملة (IDE) إلى محرر التعليمات البرمجية ثم تضع مؤشر الإدراج داخل معالج الحدث حيث يجب إضافة التعليمات البرمجية.

  1. لكتابة نص للملف المحدد ، استخدام أسلوب Write لفئة StreamWriter . قم بإضافة التعليمات البرمجية التالية مباشرة بعد Dim fw As StreamWriter . لست بحاجة إلى القلق من أن يتم طرح استثناء إذا لم يتم العثور على الملف لأنه سيتم إنشاؤه إذا لم يكن موجودًا بالفعل.

    Dim ReadString As String
    Try
        'Pass the file path and name to the StreamWriter constructor.
        'Indicate that Append is True, so file will not be overwritten.
        fw = New StreamWriter("C:\MyDiary.txt", True)
        ReadString = Entry.Text
        fw.WriteLine(ReadString)
    Finally
        'Close the file.
        fw.Close()
    End Try
    
  2. تأكد من تعذر المستخدم عم إرسال إدخال فارغ عن طريق إضافة التعليمات البرمجية التالية مباشرة بعد Dim ReadString As String.

    If (Entry.Text = "" Or Entry.Text = "Please enter something.") Then
        Entry.Text = "Please enter something."
        Return
    End If
    
  3. لأن هذه تعتبر مذكرات ، سوف يرغب المستخدم في تعيين التاريخ لكل إدخال . أدرج التعليمات البرمجية التالية بعد fw = New StreamWriter("C:\MyDiary.txt", True) لتعيين المتغير Today إلى التاريخ الحالي.

    Dim Today As DateTime
    Today = Now
    fw.Write(CStr(Today))
    fw.Write(ControlChars.CrLf)
    
  4. وأخيراً، قم بإرفاق التعليمات البرمجية لمسح TextBox. قم بإضافة التعليمات البرمجية التاليةإلى زر Clear الخاص بالحدث Click.

    Entry.Text = ""
    

إضافة ميزات العرض إلى السجل

في هذا المقطع, أضف الميزة التي تعرض آخر إدخال في DisplayEntry TextBox . يمكنك أيضاً إضافة ComboBox الذي يعرض إدخالات متعددة و التي منها يمكن للمستخدم تحديد إدخال للعرض في DisplayEntry TextBox . مثيل الفئة StreamReader يقرأ من MyDiary.txt. مثل فئة StreamWriter ، StreamReader مصمم للاستخدام مع الملفات النصية.

و للحصول على هذا القسم من المعاينة أضف عناصر التحكم الموجودة في الجدول التالي إلى النموذج و عيِن القيم المطابقة للخصائص الخاصة بهم.

عنصر التحكم

Properties

القيم

TextBox

الاسم

Visible

Size

Multiline

DisplayEntry

False

120,60

True

Button

الاسم

Text

عرض

عرض

Button

الاسم

Text

GetEntries

للحصول على الإدخالات

ComboBox

الاسم

Text

ممكّن

PickEntries

تحديد الإدخال

False

لملء مربع التحرير و السرد

  1. يتم استخدام PickEntries ComboBox لعرض التواريخ حيث يرسل المستخدم كل إدخال بحيث يمكن للمستخدم تحديد إدخال من تاريخ محدد. قم بإنشاء معالج الحدث Click الخاص بزر GetEntries ، ثم قم بإضافة التعليمات البرمجية التالية .

    Dim fr As StreamReader = Nothing
    Dim FileString As String
    FileString = ""
    Try
        fr = New System.IO.StreamReader("C:\MyDiary.txt")
        PickEntries.Items.Clear()
        PickEntries.Enabled = True
        Do
            FileString = fr.ReadLine
            If IsDate(FileString) Then
                PickEntries.Items.Add(FileString)
            End If
        Loop Until (FileString Is Nothing)
    Finally
        If fr IsNot Nothing Then
            fr.Close()
        End If
    End Try
    PickEntries.Enabled = True
    
  2. لاختبار التعليمات البرمجية ، اضغط على F5 لتحويل التطبيق برمجياً ثم انقر فوق الحصول على الإدخالات. انقر فوق السهم المنسدل في ComboBox لعرض إدخال التواريخ.

لاختيار و عرض الإدخالات الفردية

  1. قم بإنشاء معالج الحدث Click الخاص بزر Display ، ثم قم بإضافة التعليمات البرمجية التالية .

    Dim fr As StreamReader
    Dim ReadString As String
    'Make sure ReadString begins empty.
    ReadString = ""
    Dim FileString As String
    fr = New StreamReader("C:\MyDiary.txt")
    'If no entry has been selected, show the whole file.
    If PickEntries.Enabled = False Or PickEntries.SelectedText Is Nothing Then
        Do
            'Read a line from the file into FileString.
            FileString = fr.ReadLine
            'add it to ReadString
            ReadString = ReadString & ControlChars.CrLf & FileString
        Loop Until (FileString = Nothing)
    Else
        'An entry has been selected, find the line that matches.
        Do
    
            FileString = fr.ReadLine
        Loop Until FileString = CStr(PickEntries.SelectedItem)
        FileString = CStr(PickEntries.SelectedItem) & ControlChars.CrLf
        ReadString = FileString & fr.ReadLine
    
        'Read from the file until EOF or another Date is found.
        Do Until ((fr.Peek < 0) Or (IsDate(fr.ReadLine)))
            ReadString = ReadString & fr.ReadLine
        Loop
    End If
    fr.Close()
    DisplayEntry.Visible = True
    DisplayEntry.Text = ReadString
    
  2. لاختبار التعليمات البرمجية الخاصة بك ، اضغط F5 لترجمة التطبيق برمجياً ثم أرسل الإدخال. انقر فوق الحصول على إدخالات، حدد الإدخال من ComboBox، ثم انقر فوق عرض. محتويات الإدخال المحدد تظهر في DisplayEntry TextBox .

تمكين المستخدمين من حذف أو تعديل الإدخالات

وأخيراً، يمكنك تضمين وظائف إضافية تمكن المستخدمين من حذف أو تعديل الإدخال باستخدام أزرار DeleteEntry و EditEntry. كلا الزرين تبقى معطلة إلا إذا عُرض الإدخال .

إضافة عناصر التحكم الموجودة في الجدول التالي للنموذج و تعيين القيم المقابلة للخصائص الخاصة بهم .

عنصر التحكم

Properties

القيم

Button

الاسم

Text

ممكّن

DeleteEntry

حذف الإدخال

False

Button

الاسم

Text

ممكّن

EditEntry

تحرير الإدخال

False

Button

الاسم

Text

ممكّن

SubmitEdit

إرسال التحرير

False

لإتاحة حذف و تعديل الإدخالات

  1. قم بإضافة التعليمات البرمجية التالية إلى زر Display الخاص بالحدث Click ، بعد DisplayEntry.Text = ReadString .

    DeleteEntry.enabled = True
    
  2. قم بإنشاء معالج الحدث Click الخاص بزر DeleteEntry ، ثم قم بإضافة التعليمات البرمجية التالية .

    Dim fr As StreamReader
    Dim ReadString As String
    Dim WriteString As String
    Dim ConfirmDelete As MsgBoxResult
    fr = New StreamReader("C:\MyDiary.txt")
    ReadString = fr.ReadLine
    ' Read through the textfile
    Do Until (fr.Peek < 0)
        ReadString = ReadString & vbCrLf & fr.ReadLine
    Loop
    WriteString = Replace(ReadString, DisplayEntry.Text, "")
    fr.Close()
    ' Check to make sure the user wishes to delete the entry
    ConfirmDelete = MsgBox("Do you really wish to delete this entry?", 
      MsgBoxStyle.OKCancel)
    If ConfirmDelete = MsgBoxResult.OK Then
        File.Delete("C:\MyDiary.txt")
        Dim fw As StreamWriter = File.CreateText("C:\MyDiary.txt")
        fw.WriteLine(WriteString)
        fw.Close()
        ' Reset controls on the form
        DisplayEntry.Text = ""
        PickEntries.Text = ""
        PickEntries.Items.Clear()
        PickEntries.Enabled = False
        DeleteEntry.Enabled = False
    End If
    
  3. عندما يعرض المستخدم إدخال ، يصبح زر EditEntry متاح . قم بإضافة التعليمات البرمجية التالية لحدث Click الخاص بالزر Display بعد DisplayEntry.Text = ReadString .

    EditEntry.Enabled = True
    
  4. قم بإنشاء معالج الحدث Click الخاص بزر EditEntry ، ثم قم بإضافة التعليمات البرمجية التالية .

    Entry.Text = DisplayEntry.Text
    SubmitEdit.Enabled = True
    
  5. قم بإنشاء معالج الحدث Click الخاص بزر SubmitEdit ، ثم قم بإضافة التعليمات البرمجية التالية .

    Dim fr As StreamReader
    Dim ReadString As String
    Dim WriteString As String
    If Entry.Text = "" Then
        MsgBox("Use Delete to Delete an Entry")
        Return
    End If
    fr = New StreamReader("C:\MyDiary.txt")
    ReadString = fr.ReadLine
    Do Until (fr.Peek < 0)
        ReadString = ReadString & vbCrLf & fr.ReadLine
    Loop
    WriteString = Replace(ReadString, DisplayEntry.Text, Entry.Text)
    fr.Close()
    File.Delete("C:\MyDiary.txt")
    Dim fw As StreamWriter = File.CreateText("C:\MyDiary.txt")
    fw.WriteLine(WriteString)
    fw.Close()
    DisplayEntry.Text = Entry.Text
    Entry.Text = ""
    EditEntry.Enabled = False
    SubmitEdit.Enabled = False
    

لاختبار التعليمات البرمجية الخاصة بك اضغط F5 لتحويل التطبيق برمجياً . انقر فوقالحصول على الإدخالات، و حدد الإدخال ثم انقر فوق عرض. يظهر الإدخال في DisplayEntry TextBox . انقر فوقتحرير الإدخال. يظهر الإدخال في Entry TextBox . تحرير الإدخال في Entry TextBox ، ثم انقر فوق إرسال التحرير . افتح ملف MyDiary.txt للتأكد من التصحيح الخاص بك. الآن حدد الإدخال ثم انقر فوق حذف الإدخال. عندما يطلب MessageBox‏‎ تأكيد , انقر فوق ‏‏موافق. اغلق التطبيق ثم افتح MyDiary.txt لتأكيد الحذف.

راجع أيضًا:

المرجع

StreamReader

StreamWriter

موارد أخرى

نظرة عامة حول لغة Visual Basic