|
#1
|
||||
|
||||
الدرس الخمسون : 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:
وناتج عملية القراءة على ال Console: *** لكن ناتج المتغير النصي سيكون بدون علامة السطر الجديد والذي سيكون ناتج عن الدالة ... StringWriter, StringReader : كما ذكرنا سابقاً لا يوجد اي فارق عما سبق ، فقط الناتج يعود في string وهو ما يمكنك من عملية بالشكل التالي مثلاً : C#: كود PHP:
كود PHP:
تمكنك من الكتابة والقراءة والتخزين في ملفات binary ، مشتقة من الفئة System.Object وتحتوي على أغلب الدوال الموجودة في الاربع فئات السابقة . اضافة إلى الدالة ReadXXXX() حسب نوع المحتويات ، هذا المثال للقراءة والكتابة باستخدام هذه الفئة : C#: كود PHP:
كود PHP:
والله الموفق ... والسلام عليكم ورحمة الله وبركاته .
|
|
|
المواضيع المتشابهه | ||||
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
الدرس الثاني والستون : ADO.net - الجزء الثاني - دورة .net 2008 | khaledbelal | دورة .NET 2008 من منتدى فيجوال بيسك للعرب | 3 | 05-03-2011 11:37 PM |
الدرس الرابع والعشرون : System.Object دورة .net 2008 | khaledbelal | دورة .NET 2008 من منتدى فيجوال بيسك للعرب | 1 | 03-02-2011 03:55 PM |
الدرس الحادي والخمسون : System.IO - الجزء الثالث والأخير - دورة .net 2008 | khaledbelal | دورة .NET 2008 من منتدى فيجوال بيسك للعرب | 0 | 03-01-2010 01:52 PM |
الدرس التاسع والأربعون : System.IO - دورة .net 2008 | khaledbelal | دورة .NET 2008 من منتدى فيجوال بيسك للعرب | 0 | 02-28-2010 10:15 PM |
الدرس الثاني والأربعون : ال Gc دورة .net 2008 | khaledbelal | دورة .NET 2008 من منتدى فيجوال بيسك للعرب | 0 | 02-26-2010 04:17 PM |