بعد التحية ...
لقد وجدت في جهازي هذا الدرس ،و لم انشره بنيه اكماله ، مع عده امثلة ، سارسلها تباعا ، و اليكم الدرس
بسم الله الرحمن الرحيم
بعد التحية ...
مقدمة :
تعتبر الملفات ركن اساس في عملية البرمجة باية لغة ، و ذلك انها تحتفظ بالبيانات التي يحتاجها البرنامج حین انقطاع التيار او انهاء البرنامج . و الملفات عموما تصنف لثلاثة انواع هي :
* - الملفات النصية
* - الملفات التتابعية
* - الملفات الثنائية Binary Files
و تكمن اهمية النوع الثنائي في مرونة استخدامها من قبل المبرمج ، و كذلك امكانية اسناد انواع غير اعتيادية من القيم فيها ، و لذا ، فان معظم الملفات تصنف ضمن هذا النوع مثل جميع ملفات الاصوات و الصور و الفيديو و قواعد البيانات و ... بل و حتى الملفات التنفيذية ، و تكمن اهمية معرفة تنسيق الملف File Structure في امكانية استخدامها بصورة احترافية ... فمثلا :
* - عملية تعرف البرامج المشغلة لملفات الاصوات و الفيديو على مدة العرض ، بقراءة جزء بسيط على الملف ...
* - عملية طلب كلمة السر في برامج الضغط ، و قواعد البيانات و من ثم مقارنتها ...
* - عمليات التحويل بين انواع الملفات ، مثل ملف صوت من النوع Wav الى النوع MP3 ...
* - ...
اساسيات :
و یمکن الوصول لای من انواعالملفات في فيجوال بيسيك عن طريق القاعدة التالية :
FN%=FreeFile Open FileName$ For Type As FN% … Close FN%
حیث ان Type فی درسنا ستکون Binary .
يمكنك القراءة من و الكتابة في الملف باستخدام التالي :
‘ Read Get FN%,StartByte%,Var ‘Write Put FN%,StartByte%,Var
لاحظ ان FN% ستشیر الى رقم الملف ، و الذي حصلنا عليه من الدالة FreeFile ، اما StartByte%, فتشير الى المكان الذي ستبدا منه عملية الكتابة او القراءة .
اما المتغير Var فهو اهم جزء ، حیث انه من الممکن ان یکون احد انواع المتغيرات المعروفة مثل String او Long ، و كذلك يمكن ان يحمل مجموعة من هذه المتغيرات و ذلك بعد تعريف نوع جديد يضمها ، باستخدام الكلمة المفتاحية Type ، كما في القاعدة التالية :
Private Type TypeName Var1 as VarType … Varx as VarType End Type
امثلة عملية :
المثال الاول :
ُطبقت قوانين الملكية الفكرية على البرامج ، فاصبحت غير قادر على استخدام برنامج ال Winzip لضغط و تجزئة الملفات ، و كان لديك مجلد Folder يحوي عدة ملفات ، و كنت تريد ان تنقل المجلد كاملا الى اقراص مرنة ، و باقل عدد من الاقراص ... فماذا انت فاعل ؟؟؟
الحل :
يمكن ان نعيد حفظ الملفات الموجودة بالمجلد في ملف واحد يجمعها(مخزن) ، ثم نقوم بتقسيم هذا الملف (المخزن) الى اقصى حجم يحمله القرص المرن 1.44 MB ، و عند الحاجة لاسترجاع الملفات ، نجمع الملفات المقسمة لينتج لنا ( ملف واحد يحوي مجموعة الملفات الموجودة بالمجلد( المخزن مجددا) ) ...
المثال المرفق يحوي الجزء المسؤول عن تجميع الملفات في ملف واحد (مخزن) ، و الشرح موجود مع الكود ...
تمارين :
* - قم ببرمجة الجزء المتعلق بتقسيم الملف المخزن مع مراعاة تمكين المستخدم من تحديد حجم كل جزء .
* - قم باضافة حجم الملف(بالبايت) بجنب كل ملف يتم ادراجه ...
* - قم بتخصيص امتداد خاص بهذا الملف ، و اربطه بالبرنامج ( مع تخصيص ايقونة ) .
* - قم باضافة اختصار للبرنامج ، عند الضغط على مجلد بالزر الايمن من الفارة Right-Click .
* - ابحث عن تنسيق معروف مثل BMP و حاول التعامل معه برمجيا
