بسم الله الرحمن الرحيم
اثناء وقت فراغى ساحاول بقدر الامكان ان اشرح بعض المواضيع الخاصة بلغة السى شارب , وستكون المحتويات المبدئية:
اقتباس1- كيفية عمل IO باستخدام السى شارب2- ترميز الملفات Encoding
3- استخدام الـ StreamReader و StreamWriter فى التعامل مع اى Stream
4- الـ Memory Stream
5- استخدام ال BufferStream
6- استخدام ال GZIP فى فك و ضغط الملفات
7- مفهوم ال Serialization وكيفيه تطبيقه
8- مفهوم ال Threading و ال Delegation
9- التحكم فى ال Threads
10- كيفية تحويل الصورة الى string يمكن الاحتفاظ بها واسترجاعها
11- مفهوم ال Thread Pooling وكيفية تطبيقه
12- مقدمة عن استخدام ال WMI
الدرس الاول: كيفية عمل IO باستخدام السى شارب
اولا انظروا الى هذا البرنامج وسوف اقوم بالشرح عليه
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.IO;
- namespace net
- {
- class Program
- {
- static void Main(string[] args)
- {
- filestr();
- }
- static void filestr()
- {
- try
- {
- fs.WriteByte( );
- fs.WriteByte( );
- fs.WriteByte( );
- for (int c =; c;c )
- {
- string mystr = "nHello EraMaX.Net";
- foreach (byte b in mystr)
- {
- fs.WriteByte(b);
- }
- }
- fs.Close();
- }
- }
- }}
اولا شوفنا اننا لابد ان نضيف using System.IO لكى نتمكن من التعامل مع كلاسات ال IO
فى عمليات ال IO يفضل ان تكون بين try & catch حتى نلاتفى ال exception الذى ممكن ان يحدث فى اى ظرف من الظروف
ونستبدله ب message Box ظريفة للمستخدم
فتحنا جملة try وكتبنا داخلها الاتى
بمعنى اننى عملت اوبجيت من نوع filesystream هذا الاوبجيكت اسمه fs ويشير الى ملف السمه era.txt عنوانه c:\era.txt
واذا لم يجد البرنامج سوف يخلقه لذلك استخدمت هذا ال attrubit اللى هو OpenOrCreate والعملية التى اريد عملها اختار انا اذا كانت قراءة او كتابه او حتى القراءة والكتابه معا
write -- read -- read/write Both
دلوقتى بقى لدى موشر الى مكان معين )فايل ( يمكن الكتابة به او القراءة منه
يمكننى استخدام هذا ال filestream فى الكتابة والقراءة كالاتى :-
- fs.WriteByte(79);
- fs.WriteByte(79);
- fs.WriteByte(80);
فانا استطيع ان اكتب بايت بايت على هذا الاستريم
طبعا رقم ال 79 هو رقم الاسكى الخاص بالحرف الذى اريد كتابته فى ال file
او يمكننى اذا كانت لدى جملة ان ارسلها باستخدام ال foreach لتقطيعها بايت بايت وارسال كل بايت
كما فى التالى :-
- for (int c =; c;c )
- {
- string mystr = "nHello EraMaX.Net";
- foreach (byte b in mystr)
- {
- fs.WriteByte(b);
- }
- }
طبعا يفضل بعد الانتهاء من استخدام اى استريم ان يقوم بغلقه
fs.Close();
وطبعا ما تنساش ال catch الخاصة بال try اللى فتحناها من شوية :(
استكمالا للموضوع طريقة عمل read من ملف معين نعرف عنوانه
اليك هذا الكود :-
- static void strread()
- {
- try
- {
- byte x;
- x = (byte)fs.ReadByte();
- while (x!=255 )
- {
- x = (byte)fs.ReadByte();
- }
- }
- }
طبعا استخدمنا دالة ReadByte الموجوده داخل الابوجيت الذى من نوع filestream لنقراء بايت بايت
الان نتلكم عن ال seeking وهى التجول داخل الملف والقراءة والكتابة فى مكان معين فى الملف
شاهدوا هذا الكود :-
- static void strseek()
- {
- int i=0;
- while(i++<10 )
- }
طبعا استخدمت دالة ال seek الموجوده داخل الابجيكت fs واعطيتها رقم 10 باننى اقول لها تحركى عشرة اماكن من اين بقى تتحرك هذا هو ال attrubit الثانى قولت لها SeekOrgin.Begin اين من نقطة الاصل
ويمكن اجعلها 10 اماكن من المكان الحالى الذى اقف فيه .current
او ممكن 10 اماكن للخلف من النهاية .End
الى اللقاء مع الدرس القادم باذن الله :(
