الإرشادات التفصيلية: معالجة الملفات باستخدام أساليب NET Framework.
توضح هذه المعاينة كيفية فتح و قراءة ملف باستخدام فئة StreamReader ، و تتحقق لمعرفة ما إذا كان يتم الوصول إلى الملف و البحث عن سلسلة داخل الملف المقروء مع مثيل فئة StreamReader و الكتابة إلى الملف باستخدام فئة StreamWriter .
ملاحظة
قد تختلف الخيارات المتوفرة في مربعات الحوار, و أسماء ومواقع قوائم الأوامر التي تراها عن ما هو مفسر في التعليمات, و ذلك حسب إعدادات المشغل الخاصة بك أو الإصدار. تمت كتابة صفحة التعليمات هذه مع وضع إعدادات التطوير العامة في الاعتبار. لتغيير الإعدادات الخاصة بك, اختر إعدادات الاستيراد و التصدير ضمن القائمة أدوات . لمزيد من المعلومات، راجع العمل مع إعدادات.
إنشاء التطبيق
ابدأ Visual Studio ، ثم ابدأ المشروع بواسطة إنشاء نموذج يمكن أن يستخدمه المستخدم للكتابة إلى ملف معيّن .
لإنشاء المشروع
من قائمة ملف، اختر فوق مشروع جديد.
في جزء مشروع جديد ، انقر فوق تطبيق الـ Windows.
في صندوق الاسم اكتب MyDiary و انقر فوقموافق.
Visual Studio يضيف إلى المشروع مستكشف الحلول, و يفتح مصمم Windows Forms .
إضافة عناصر التحكم الموجودة في الجدول التالي للنموذج و تعيين القيم المقابلة للخصائص الخاصة بهم .
الكائن
Properties
Value
الاسم
Text
إرسال
إرسال الإدخال
الاسم
Text
Clear (مسح)
مسح الإدخال
الاسم
Text
Multiline
Entry
الرجاء إدخال شيء ما.
False
الكتابة إلى الملف
لإضافة القدرة على الكتابة إلى ملف بواسطة التطبيق، استخدم فئة StreamWriter . و قد تم تصميم StreamWriter لناتج الحرف بترميز محدد ، بينما فئة Stream مصممة لمُدخل و مخرج البايت . استخدم StreamWriter لكتابة أسطر المعلومات إلى ملف النص القياسي . و لمزيد من المعلومات عن فئة StreamWriter ، راجع StreamWriter.
لإضافة وظائف الكتابة
من قائمة عرض ، اخترالتعليمات البرمجية لفتح محرر التعليمات برمجية.
لأن التطبيق يشير إلى مساحة الاسم System.IO قم بإضافة الكشوفات التالية في بداية التعليمات البرمجية الخاصة بك ، قبل تعريف الفئة للنموذج الذي يبدأ Public Class Form1.
Imports System Imports System.IO
قبل الكتابة إلى ملف, يجب عليك إنشاء مثيل لفئة StreamWriter .
من قائمة عرض اخترالمصمم للعودة إلى مصمم Windows Forms. انقر نقر مزدوج على زر Submit لإنشاء معالج حدث Click الخاص بالزر ثم أضف التعليمات البرمجية التالية .
Dim fw As StreamWriter
ملاحظة
سوف ترجع بيئة تطوير Visual Studio المتكاملة (IDE) إلى محرر التعليمات البرمجية ثم تضع مؤشر الإدراج داخل معالج الحدث حيث يجب إضافة التعليمات البرمجية.
لكتابة نص للملف المحدد ، استخدام أسلوب 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
تأكد من تعذر المستخدم عم إرسال إدخال فارغ عن طريق إضافة التعليمات البرمجية التالية مباشرة بعد Dim ReadString As String.
If (Entry.Text = "" Or Entry.Text = "Please enter something.") Then Entry.Text = "Please enter something." Return End If
لأن هذه تعتبر مذكرات ، سوف يرغب المستخدم في تعيين التاريخ لكل إدخال . أدرج التعليمات البرمجية التالية بعد fw = New StreamWriter("C:\MyDiary.txt", True) لتعيين المتغير Today إلى التاريخ الحالي.
Dim Today As DateTime Today = Now fw.Write(CStr(Today)) fw.Write(ControlChars.CrLf)
وأخيراً، قم بإرفاق التعليمات البرمجية لمسح TextBox. قم بإضافة التعليمات البرمجية التاليةإلى زر Clear الخاص بالحدث Click.
Entry.Text = ""
إضافة ميزات العرض إلى السجل
في هذا المقطع, أضف الميزة التي تعرض آخر إدخال في DisplayEntry TextBox . يمكنك أيضاً إضافة ComboBox الذي يعرض إدخالات متعددة و التي منها يمكن للمستخدم تحديد إدخال للعرض في DisplayEntry TextBox . مثيل الفئة StreamReader يقرأ من MyDiary.txt. مثل فئة StreamWriter ، StreamReader مصمم للاستخدام مع الملفات النصية.
و للحصول على هذا القسم من المعاينة أضف عناصر التحكم الموجودة في الجدول التالي إلى النموذج و عيِن القيم المطابقة للخصائص الخاصة بهم.
عنصر التحكم |
Properties |
القيم |
---|---|---|
الاسم Visible Size Multiline |
DisplayEntry False 120,60 True |
|
الاسم Text |
عرض عرض |
|
الاسم Text |
GetEntries للحصول على الإدخالات |
|
الاسم Text ممكّن |
PickEntries تحديد الإدخال False |
لملء مربع التحرير و السرد
يتم استخدام 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
لاختبار التعليمات البرمجية ، اضغط على F5 لتحويل التطبيق برمجياً ثم انقر فوق الحصول على الإدخالات. انقر فوق السهم المنسدل في ComboBox لعرض إدخال التواريخ.
لاختيار و عرض الإدخالات الفردية
قم بإنشاء معالج الحدث 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
لاختبار التعليمات البرمجية الخاصة بك ، اضغط F5 لترجمة التطبيق برمجياً ثم أرسل الإدخال. انقر فوق الحصول على إدخالات، حدد الإدخال من ComboBox، ثم انقر فوق عرض. محتويات الإدخال المحدد تظهر في DisplayEntry TextBox .
تمكين المستخدمين من حذف أو تعديل الإدخالات
وأخيراً، يمكنك تضمين وظائف إضافية تمكن المستخدمين من حذف أو تعديل الإدخال باستخدام أزرار DeleteEntry و EditEntry. كلا الزرين تبقى معطلة إلا إذا عُرض الإدخال .
إضافة عناصر التحكم الموجودة في الجدول التالي للنموذج و تعيين القيم المقابلة للخصائص الخاصة بهم .
عنصر التحكم |
Properties |
القيم |
---|---|---|
الاسم Text ممكّن |
DeleteEntry حذف الإدخال False |
|
الاسم Text ممكّن |
EditEntry تحرير الإدخال False |
|
الاسم Text ممكّن |
SubmitEdit إرسال التحرير False |
لإتاحة حذف و تعديل الإدخالات
قم بإضافة التعليمات البرمجية التالية إلى زر Display الخاص بالحدث Click ، بعد DisplayEntry.Text = ReadString .
DeleteEntry.enabled = True
قم بإنشاء معالج الحدث 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
عندما يعرض المستخدم إدخال ، يصبح زر EditEntry متاح . قم بإضافة التعليمات البرمجية التالية لحدث Click الخاص بالزر Display بعد DisplayEntry.Text = ReadString .
EditEntry.Enabled = True
قم بإنشاء معالج الحدث Click الخاص بزر EditEntry ، ثم قم بإضافة التعليمات البرمجية التالية .
Entry.Text = DisplayEntry.Text SubmitEdit.Enabled = True
قم بإنشاء معالج الحدث 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 لتأكيد الحذف.