سلسلة شروحات innoSetup الدرس الخامس عشر : صناعة ملف التثبيت عن طريق الأكواد قسم [INI]

ناصر بعزيز

Administrator
طاقم الإدارة
إنضم
7 أغسطس 2018
المشاركات
646
مستوى التفاعل
666
النقاط
93
الإقامة
الجزائر
الموقع الالكتروني
mx-blind.com
الجنس
ذكر
نظام التشغيل
Windows10
قارئ الشاشة المستخدم
jaws
بسم الله الرحمن الرحيم, والصلاة والسلام على أشرف الخلق والمرسلين
أما بعد فأيها الأحباب أهلا وسهلا بكم في الدرس الخامس عشر من دورة تعلم برنامج InnoSetup
في درسنا لنهار اليوم سنتعرف على كيفية التعامل مع ملفات ini بواسطة البرنامج
أقصد برنامج InnoSetup
حيث القسم الذي يسمح لنا بالتعامل مع ملفات INI هو قسم
[INI]

أولا وعلى غير العادة لنتعرف مع بعض على معنى ملفات INI
إن ملفات INI هي ملفات إعدادات
حيث يستخدمها مصممي البرامج لكي يخزنون فيها إعدادات برامجهم
فمثلا في مشغل الصوتيات السهل
أي إعداد تقوم بضبطه من واجهة الخيارات فإنه يخزن في ملف INI
ومن ثم يقرأ البرنامج القيم من ذالك الملف
في العادة أغلب البرامج تكون لها طريقة واحدة في ضبط إعداداتهم في هذا الملف
كما يمكن لملف INI أن يكن بعدة صيغ
كمثلا

.ini
.cfg
.conf
وغير ذالك من الصيغ
لاكن ما ذكرته هنا هو المتداول
وشكل ملف INI يكون كالتالي
[section]
key1=value1
key2=value2
keyN=valueN

وطبعا بإمكانك أن تكتب أقسام متعددة في نفس الملف
كمثلا
[General]
PlayStartup=1
ShowWelcome=1
Hotkeys=0

[Audio]
volume=100
speed=50
effects=1

أتمنا أن تكن الفكرة وصلت لكم
أما ما سنتعرف عليه اليوم هو كيفية كتابة هذه المعلومات في ملفاتنا باستخدام InnoSetup

ونعود إلى عادتنا وإليكم مثال

[INI]
Filename: "MyProg.ini"; Section: "InstallSettings"; Flags: uninsdeletesection
Filename: "MyProg.ini"; Section: "InstallSettings"; Key: "InstallPath"; String: "{app}"

الآن عزيزي القارء صلي على رسول الله وهيا نشرح العناصر واحد واحد
أولا لدينا

Filename
مطلوب
حيث هذا العنصر نكتب فيه مسار ملف INI الخاص بنا
وهو يقبل الثوابت بالطبع
في حال لم تقم بكتابة مسار في هذا القسم وكتبت اسم ملف INI فقط
فإنه سيتم كتابة الملف في مجلد windows
أما في حال لم تقم بكتابة شيء في هذا العنصر
فإنه سيتم كتابة الكود في ملف win.ini
في مجلد windows

الآن هذا مثال
Filename: "{app}\settings.ini"

العنصر التالي هو

Section
مطلوب
حيث يستخدم لتعيين اسم القسم الذي سيكتب فيه
كما ذكرنا أعلاه أن يمكن أن يحتوي الملف على أكثر من قسم.
وطبعا يمكنكم استخدام الثوابت

هذا مثال

Filename: "{app}\settings.ini"; Section: "general"

Key
المفتاح الذي ستعطيه قيمة
في حال لم تقم بكتابة شيء هنا فإنه لن يقوم بإنشاء المفتاح
طبعا يمكنك استخدام الثوابت

مثال
Filename: "{app}\settings.ini"; Section: "general"; Key: "showWelcomeMSG"

String
القيمة التي تريد إعطائها للمفتاح
حيث يمكنك استخدام الثوابت
مثال

Filename: "{app}\settings.ini"; Section: "general"; Key: "showWelcomeMSG"; String: "true"

Flags
كما تعودنا في هذا العنصر
نقوم بإضافة الخيارات الإضافية
حيث يتم الفصل بين خيار وخيار بمفتاح المسافة
وإليك عزيزي الخيارات المتاحة :

createkeyifdoesntexist
حيث هذا يعني إنشاء المفتاح في حال لم يكن موجود فقط
وفي حال تم العثور عليه فلن يتم الكتابة عليه
uninsdeleteentry
حيث سيقوم باستخدام هذا الخيار
بحذف المدخل في حال إزالة التثبيت
وأعني بالمدخل
المفتاح=القيمة

uninsdeletesection
إذا قمت باستخدام هذا الخيار فإنه سيقوم بحذف القسم بأكمله عند إزالة التثبيت

uninsdeletesectionifempty
مثل السابقة
لاكن هنا يتم حذف القسم فقط إذا كان فارغ

هذه كل العبارات المتاحة
أما الآن فمع مثال

Filename: "{app}\settings.ini"; Section: "general"; Key: "showWelcomeMSG"; String: "true"; Flags: uninsdeleteentry
عزيزي لا داعي أن أقول لك بإمكانك استخدام أوامر
tasks
وأوامر
Components
وقد رأينا طريقة إضافتهم في الدروس السابقة
وكذالك يمكنك استخدام الثلاث أوامر المرتبطة
وهم اللغة وإصدار ويندوز الأدنى أو الأكبر من.
وكنا بالطبع قد رأينا أمثلة عديدة عن ذالك
دعني هنا أقول لك أن يمكنك استخدام العناصر التي ذكرتها الآن في أي مكان في السكربت
كالملفات وغير ذالك
فلا داعي لتكرارها في كل مرة
هذا كل ما لدينا في درسنا اليوم
طبعا
والآن ننتقل لقسم جديد في الدرس وإسمه
الثرثرة
حيث هنا عزيزي سأُثَرْثِر معك قليلا خارج عنوان الدرس
بالنسبة للدورة
فإن كان من المقرر في بدايتها أن نقف عند هذا الحد
أي الدرس الخامس عشر
ولاكن إرتأيت أن أضيف لكم درسين
الدرس السادس عشر سأشرح فيه الثوابت
وفي الدرس السابع عشر
سأتطرق إلى بعض المعلومات عن قسم الأكواد
الذي يمكن استخدام أكواد لغة الباسكال فيه
بالطبع لن أقوم بشرحه
لاكن سأعطيكم بعض المعلومات
بالإضافة إلى مثال مبسط جدا
وأكيد ملفات المساعدة والبحث في الأنترنت كافيان لكي تتعمق أكثر في هذا القسم
وكما قلت فإن الدورة باب في البرنامج فقط
أنا لم ولن أعطيكم كل شيء لأني لا أعرف كل شيء
فعليك البحث أكثر وتنبيهي في حال كان عندي أي غلط في هذه الدورة.
وفي نهاية الدورة تماما سأضع موضوع متجدد سننشر فيه الأمثلة
حيث كل فترة وفترة أقوم بكتابة مثال ووضعه في هذا الموضوع
لِأولائك الذين يحبون القوالب الجاهزة.
أما الآن عزيزي
فأتمنا أن تكن قد استفدت من شرح اليوم
وأتمنا أن لا تنسى أخوك ناصر بعزيز من دعائك الصالح.
أستودعكم الله الذي لا تغيب ودائعه
والسلام عليكم ورحمة الله تعالى وبركاته
 
لقد استفدت كثيرا في هذه الدورة المباركة نفع الله بعلمكم أخي العزيز ناصر
 
عودة
أعلى