الدرس الخمسون : System.IO - الجزء الثاني - دورة .net 2008
بسم الله الرحمن الرحيم . السلام عليكم ورحمة الله وبركاته . نواصل هنا درسنا الذي بدأناه في الجزء السابق عن 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 . الفئة File Stream : هذه الفئة التي تطبق الفئة القاعدية abstract class السابق تختص فقط بالتعامل مع ال streaming مع الملفات . المثال التالي يوضح الكتابة في عدة أماكن من الملف ومن ثم قراءة البيانات المكتوبة - قبل الكتابة فقط نحتاج لتحويل الرسالة إلى bytes لذا لا تنس هذه الخطوة . C#: كود PHP:
كود PHP:
ذكرنا في أول دروسنا في هذا الموضوع ( راجع الدرس الأول ) أن لدينا عدة انواع من القراءة والكتابة في stream ذكرنا منها StreamWriter, StreamReader و StringWriter, StringReader و BinaryReader, BinaryWriter ، وهم ما سنبدأ في التعرف عليهم الآن . StreamWriter, StreamReader : الفئات الأشهر والأكثر استخداماً من بين الفئات الثلاث السابقة ، تحتوي على الدوال الاساسية لعملية الكتابة والقراءة التالية : StreamWriter : Close() : اغلاق . Flush() : مسح كافية محتويات ال buffer . NewLine : سطر جديد . Write() : كتابة عادية . WriteLine() : كتابة مع سطر جديد . StreamReader : تحتوي بالاضافة إلى الدوال الثلاث الأولى في الفقرة السابقة : Peek() قراءة الحرف التالي مباشرة للمكان الحالي دون تغيير مكان المؤشر. Read() : القراءة . ReadBlock() : قراءة مجموعة من الداتا ووضعها في ال buffer . ReadLine() : قراءة سطر كامل . ReadToEnd() : قراءة من مكان المؤشر حتى النهاية . أمثلة : مثال يجمع عمليتي القراءة والكتابة إلى ملف نصي : C#: كود PHP:
كود PHP:
http://vb4arab.com/vb/uploaded/3/01212631711.jpg وناتج عملية القراءة على ال Console: http://vb4arab.com/vb/uploaded/3/11212631711.jpg *** لكن ناتج المتغير النصي سيكون بدون علامة السطر الجديد والذي سيكون ناتج عن الدالة ... StringWriter, StringReader : كما ذكرنا سابقاً لا يوجد اي فارق عما سبق ، فقط الناتج يعود في string وهو ما يمكنك من عملية بالشكل التالي مثلاً : C#: كود PHP:
كود PHP:
تمكنك من الكتابة والقراءة والتخزين في ملفات binary ، مشتقة من الفئة System.Object وتحتوي على أغلب الدوال الموجودة في الاربع فئات السابقة . اضافة إلى الدالة ReadXXXX() حسب نوع المحتويات ، هذا المثال للقراءة والكتابة باستخدام هذه الفئة : C#: كود PHP:
كود PHP:
والله الموفق ... والسلام عليكم ورحمة الله وبركاته . |
الساعة الآن 05:24 AM. |
Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By
Almuhajir
النسخة الفضية