06-04-14, 03:16 PM
نحمده ونصلي على رسوله الكريم
ملفات الـ Resources اشبه بملفات الـ XML لكن التعامل معها مختلف قليلا، فهي اسهل لان بيئة التطوير تحتوي على فئات للتعامل مع هذه الملفات، فيها اجراءات تسهل العمليات عليها.
عند الكتابة على ملف نعرف متغير من فئة الـ ResXResourceWriter ثم نعطيه مسار الملف لحفظه، ثم بعد ذلك نبدأ بكتابة البيانات فيه من خلال الاجراء ()AddResource الذي ياخذ وسيطات مختلفة منها
string name, string value) الوسيطة الاولى هي مفتاح القيمة التي نستطيع معرفتها عند القراءه والثانية هي القيمة، كما فعلنا في المثال:
الوسيطة الاولى "Name" هي المفتاح، يمكننا كتابة ما نريد في المفتاح مثلا "N" او اي شيء هو فقط مفتاح وحاجته هي عند قراءة الملف نتعرف على القيم من خلال مفاتيحها.
هناك ايضا وسيطات لنفس الاجراء تاخذ قمية (string name, byte[] value)، يمكننا تخزين ما نريد في مصفوفة الـ byte كتخزين ملف مثلا عند قراءته كمصفوفة byte او تخزين فئة مثلا عند تحويلها لمصفوفة byte او ما نشاء، يتم حفظ هذه البيانات داخل الملف كلا حسب نوعه ولو حفظنا صورة او ملف هناك فلن نحتاج الملف الموجود على القرص الصلب لان الملف اصبح داخل ملف الـ Resource كمصفوفة byte
وعند قراءة ملف الـ Resources نعرف متغير من الفئة ResXResourceReader التي تاخذ وسيطة وهي مسار الملف المراد قراءته
يمكننا الان تعريف متغير من نوع DictionaryEntry لعمل حلقة نجلب بها البيانات من خلال التعرف على المفتاح
ولجلب البيانات التي في المفتاح "Name":
اما البيانات من نوع مصفوفة []byte نستخدم معها دوال التحويل، مثلا لجلب الصورة من الملف:
Image.FromStream تاخذ وسيطة من نوع Stream و MemoryStream تاخذ وسيطة من نوع مصفوة []byte
المثال المرفق فيه كل ما تكلمت عنه يمكن الاطلاع عليه
ملفات الـ Resources اشبه بملفات الـ XML لكن التعامل معها مختلف قليلا، فهي اسهل لان بيئة التطوير تحتوي على فئات للتعامل مع هذه الملفات، فيها اجراءات تسهل العمليات عليها.
عند الكتابة على ملف نعرف متغير من فئة الـ ResXResourceWriter ثم نعطيه مسار الملف لحفظه، ثم بعد ذلك نبدأ بكتابة البيانات فيه من خلال الاجراء ()AddResource الذي ياخذ وسيطات مختلفة منها
string name, string value) الوسيطة الاولى هي مفتاح القيمة التي نستطيع معرفتها عند القراءه والثانية هي القيمة، كما فعلنا في المثال:كود :
xWriter.AddResource("Name", "الاسم");هناك ايضا وسيطات لنفس الاجراء تاخذ قمية (string name, byte[] value)، يمكننا تخزين ما نريد في مصفوفة الـ byte كتخزين ملف مثلا عند قراءته كمصفوفة byte او تخزين فئة مثلا عند تحويلها لمصفوفة byte او ما نشاء، يتم حفظ هذه البيانات داخل الملف كلا حسب نوعه ولو حفظنا صورة او ملف هناك فلن نحتاج الملف الموجود على القرص الصلب لان الملف اصبح داخل ملف الـ Resource كمصفوفة byte
وعند قراءة ملف الـ Resources نعرف متغير من الفئة ResXResourceReader التي تاخذ وسيطة وهي مسار الملف المراد قراءته
يمكننا الان تعريف متغير من نوع DictionaryEntry لعمل حلقة نجلب بها البيانات من خلال التعرف على المفتاح
كود :
if(DictionaryEntry.Key.ToString() == "Name")كود :
DictionaryEntry.Value.ToString();كود :
Image.FromStream(new MemoryStream((byte[])DictionaryEntry.Value))المثال المرفق فيه كل ما تكلمت عنه يمكن الاطلاع عليه
