![]() |
|
الدرس الخمسون : System.IO - الجزء الثاني . - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (https://vb4arb.com/vb) +-- قسم : الأقسام التعليمية - المنتدى القديم (https://vb4arb.com/vb/forumdisplay.php?fid=90) +--- قسم : قسم دورات المنتدى (https://vb4arb.com/vb/forumdisplay.php?fid=113) +---- قسم : دورة .net 2008 . لنبدأ سوياً (https://vb4arb.com/vb/forumdisplay.php?fid=138) +---- الموضوع : الدرس الخمسون : System.IO - الجزء الثاني . (/showthread.php?tid=5639) |
الدرس الخمسون : System.IO - الجزء الثاني . - oneyemenweb2 - 14-10-12 كاتب المقال احمد جمال [COLOR="#008000"] بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .[/COLOR] نواصل هنا درسنا الذي بدأناه في الجزء السابق عن System.IO . Stream : ال Stream يقصد به تدفق او نقل البيانات ما بين مصدر ومستقبل سواء كان ذلك بين ملفين او بين جهازين على الشبكة أو طابعة أو خلافه ، حيث يتم نقل البيانات في الغالب على شكل sequance of bytes حتى نهاية الملف أو البيانات . في .net ، هناك الفئة System.IO.Stream والتي تعتبر الفئة الأم التي سنتعامل مع غالب فئاتها لاحقاً ، تحتوي هذه الفئة على الدوال والخصائص الرئيسية التالية - abstract class - : CanRead, CanWrite : خصائص تتيح لك معرفة إذا كانت عملية ال Stream هذه تقبل عملية الكتابة أو القراءة وغيرها . Close() : اغلاق العملية وكل ما يتعلق بها من ملفات وخلافه . Flush() : تحديث بيانات المستقبل بالبيانات الموجودة حالياً في Buffer ، لو لم يكن هذه العملية تدعم وجود Buffer فهذه الدالة لا تقوم بأي شيء في الواقع . Length : خاصية تعيد حجم ال stream بالبايت . Position : تحدد المكان في ال stream . Read(), ReadByte() : قراءة بايت او مجموعة من bytes . Seek() : وضع المؤشر في مكان جديد في هذا ال stream . SetLength() : تحديد طول ال stram الحالي : Write(), WriteByte() : كتابة بايت او مجموعة من ال bytes . الدرس الخمسون : System.IO - الجزء الثاني . - oneyemenweb2 - 14-10-12 الفئة File Stream : هذه الفئة التي تطبق الفئة القاعدية abstract class السابق تختص فقط بالتعامل مع ال streaming مع الملفات . المثال التالي يوضح الكتابة في عدة أماكن من الملف ومن ثم قراءة البيانات المكتوبة - قبل الكتابة فقط نحتاج لتحويل الرسالة إلى bytes لذا لا تنس هذه الخطوة . C#: كود : private void filestreamexample(string msg, string beforeendmsg)vb.net: كود : Private Sub filestreamexample(ByVal msg As String, ByVal beforeendmsg As String) الدرس الخمسون : System.IO - الجزء الثاني . - oneyemenweb2 - 14-10-12 التعامل مع الفئات المشتقة : ذكرنا في أول دروسنا في هذا الموضوع ( راجع الدرس الأول ) أن لدينا عدة انواع من القراءة والكتابة في stream ذكرنا منها StreamWriter, StreamReader و StringWriter, StringReader و BinaryReader, BinaryWriter ، وهم ما سنبدأ في التعرف عليهم الآن . الدرس الخمسون : System.IO - الجزء الثاني . - oneyemenweb2 - 14-10-12 StreamWriter, StreamReader : الفئات الأشهر والأكثر استخداماً من بين الفئات الثلاث السابقة ، تحتوي على الدوال الاساسية لعملية الكتابة والقراءة التالية : StreamWriter : Close() : اغلاق . Flush() : مسح كافية محتويات ال buffer . NewLine : سطر جديد . Write() : كتابة عادية . WriteLine() : كتابة مع سطر جديد . StreamReader : تحتوي بالاضافة إلى الدوال الثلاث الأولى في الفقرة السابقة : Peek() قراءة الحرف التالي مباشرة للمكان الحالي دون تغيير مكان المؤشر. Read() : القراءة . ReadBlock() : قراءة مجموعة من الداتا ووضعها في ال buffer . ReadLine() : قراءة سطر كامل . ReadToEnd() : قراءة من مكان المؤشر حتى النهاية . أمثلة : مثال يجمع عمليتي القراءة والكتابة إلى ملف نصي : C#: كود : [align=left] private void write(string msg)ناتج عملية الكتابة في الملف : [ATTACH=CONFIG]905[/ATTACH] وناتج عملية القراءة على ال Console: [ATTACH=CONFIG]906[/ATTACH] الدرس الخمسون : System.IO - الجزء الثاني . - oneyemenweb2 - 14-10-12 StringWriter, StringReader : كما ذكرنا سابقاً لا يوجد اي فارق عما سبق ، فقط الناتج يعود في string وهو ما يمكنك من عملية بالشكل التالي مثلاً : C#: كود : StringBuilder stbuilder = strWriter.GetStringBuilder();vb.net: كود : Dim stbuilder As StringBuilder = strWriter.GetStringBBinaryReader, BinaryWriter تمكنك من الكتابة والقراءة والتخزين في ملفات binary ، مشتقة من الفئة System.Object وتحتوي على أغلب الدوال الموجودة في الاربع فئات السابقة . اضافة إلى الدالة ReadXXXX() حسب نوع المحتويات ، هذا المثال للقراءة والكتابة باستخدام هذه الفئة : C#: كود : FileInfo f = new FileInfo("Binary.dat");vb.net: كود : Dim f As New FileInfo("Binary.dat") إلى هنا نكون قد انتهينا من درس هذا اليوم ، بقي لدينا جزء واحد فقط في موضوع الملفات نستعرضه سوية غداً إن شاء الله . [COLOR="#008000"]والله الموفق ... والسلام عليكم ورحمة الله وبركاته . [/COLOR] الدرس الخمسون : System.IO - الجزء الثاني . - oneyemenweb2 - 14-10-12 جميع الردود المكتوبة ل الكاتب الموضوع احمد جمال |