شـبـكــة عـمّـــار
إخبارية - ترفيهية
- تعليمية



جديد الصور
جديد الأخبار
جديد المقالات


جديد الصور

جديد البطاقات

جديد الصوتيات

المتواجدون الآن


تغذيات RSS

2012-08-10 06:49


بسم الله الرحمن الرحيم



أحد الإمكانيات الهامة في أي لغة برمجة هي التعامل مع الملفات, ففي هذا الدرس سنناقش التعامل مع الملفات في الـ c#.

لكي تتعامل مع الملفات عن طريق الـ C# فإنك تحتاج إلى System.IO namespace. بحيث أن هذا الـ namespace يحتوي على 3 classes هامة في التعامل مع الملفات و كل منها يستخدم لغرض معين

1- FileStream : يستخدم مع كلا الحالتين القراءة والكتابة في الملف.

2- StreamWriter : للكتابة في الملف .

3- StreamReader :للقراءة من الملف.


والـ syntax الخاص بكل منها كالتالي:

1-FileStream(string path, System.IO.FileMode mode,System.IO.FileAccess access)

بحيث أن path هي مسار الملف المراد فتحه أو إنشاءه,

و mode هي إما create عندما نريد إنشاء ملف في المسار أو open عندما نريد فتح الملف الموجود بالمسار

وأخيرا access هي إما write عندما نريد الكتابة داخل الملف أو read عندما نريد القراءة منه .



2-StreamWriter (string path)

3-StreamReader(string path)



يجب أن ألفت انتباهك إلى شيء هام :

وهو أنه يجب كونك حذراً عند فتح الملفات والقراءة منها, أو الكتابة فيها أي العمل مع I/O بشكل عام, و ذلك عن طريق استخدام Exception Handling لاصطياد أي خطأ قد يحدث أثناء التعامل معها.
و لا تنسى أن تقوم بإغلاق الملف دائما في الـ Finally block .

الآن نريد أن نكتب برنامج بواسطته ننشئ ملف نصي اسمه " test " داخل القرص الصلب C , أي سيكون مسار هذا الملف "C://test.txt" ونكتب بداخله العبارة التالية:
"working with file adds power to the language"
إذن لا بد أن نعمل عدة خطوات:
1- عملية إنشاء الملف تتطلب إنشاء object من الكلاس FileStream
2- وعملية الكتابة في هذا الملف تتطلب إنشاء object من الكلاس StreamWriter , ثم إغلاق الـ Writer .
كتبنا الأوامر داخل الـ Main مباشرة ً.

السطر 11 : وضعنا مسار الملف المراد إنشاؤه بداخل المتغير "fileName".
بعد ذلك لا حظ استخدامنا للـ try block بحيث أننا وضعنا الأوامر بداخلها لتفادي حصول أي خطأ .
السطر 14 :قمنا بتعريف object من الكلاس FileStream ومررنا له البارميتر حسب الـsyntax الذي ذكرناه في بداية الدرس ,مسار الملف ثم نوع العملية هي create ثم العملية داخل الملف هي write.
السطر 15 : قمنا بتعريف object من الكلاس StreamWriter أسميناه "s" لأن العملية كتابة كما ذكرت .
السطر 18 : الكائن "s" نستطيع أن نستخدم معه العديد من الدوال والتي من ضمنها WriteLine والتي تستخدم للكتابة داخل الملف الذي تم إنشاؤه.
السطر 19 : نقوم بتنظيف كل الـ buffer التي استخدمت عند الكتابة في الملف.
السطرين 20 -21 : تستخدم لإغلاق الـ object من الكلاسين FileStream و StreamWriter بعد أن تم استخدامهما.

السطرين 23 – 24 : لاصطياد أي Exception قد يحدث أثناء التعامل مع الملفات .

في الـ Finally block بالأسطر (26 - 31) : لابد من التأكد من إغلاق الملف.

بعد تشغيل البرنامج اذهب إلى القرص C ستجد ملف نصي test تم إنشاؤه ولو قمت بفتحه ستجد بداخله الجملة " working with file adds power to the language " .
أليست العملية سهلة للغاية .!!

بقي أن نقوم بعمل برنامج آخر بواسطته نفتح ملفاً نصياً موجوداً لديك على القرص على مسار معين ثم نقرأ ما بداخله ونقوم بطباعته على الشاشة، والخطوات :

1- عملية فتح الملف تتطلب إنشاء object من الكلاس FileStream كما فعلنا بالسابق.
2- وعملية القراءة في هذا الملف تتطلب إنشاء object من الكلاس StreamReader , ثم إغلاق الـ Readerr .

ولنفرض أن مسار الملف الذي نريد القراءة منه هو الملف الذي أنشأناه بالمثال السابق "C://test.txt" أو أي ملف نصي آخر موجود لديك على القرص تريد أن تقرأ منه البيانات فقط اكتب المسار له كاملا.

البرنامج :



السطر 14 : أنشأت object من الكلاس FileStream ولكن الاختلاف هنا في الـ FileMode فجعلناه open لأننا نريد فتح الملف, وفي الـ FileAccess بحيث جعلناه read لأننا نريد القراءة من الملف.
السطر 15: أنشأنا object من الكلاس StreamReader .
السطر 16 : الكائن "r" نستطيع أن نستخدم معه العديد من الدوال والتي من ضمنها الدالة ReadToEnd والتي فائدتها أن تقرأ محتويات كل الملف النصي وتعود بقيمة string , ولذا قمنا بتعريف المتغير string1 .
السطر 17: جملة طباعة عادية لمحتوى الملف.
ثم في الأسطر 18- 19: قمنا بإغلاق الـ Reader و الكائن من الكلاس FileStream .


تعليقات 0 | إهداء 0 | زيارات 641


خدمات المحتوى
  • مواقع النشر :
  • أضف محتوى في Digg
  • أضف محتوى في del.icio.us
  • أضف محتوى في StumbleUpon
  • أضف محتوى في Google


تقييم
1.00/10 (3 صوت)


Powered by Dimofinf cms Version 3.0.0
Copyright© Dimensions Of Information Inc.