بسم الله الرحمان الرحيم
والصلاة والسلام على أشرف الأنبياء والمرسلين
أما بعد فأيها الإخوى والأخوات أهلا وسهلا ومرحبا بكم في درسنا الثالث عشر من دروس دورة autoit
حيث اليوم سنتطرق بإذن الله إلى طريقة التعامل مع ملفات INI
والمعروف عن ملفات INI
هي ملفات تستخدم لتخزين المعلومات لكي تستفيد البرامج منها
كمثلا تخزين الإعدادات والبيانات الخاصة بالمستخدم لكي يتعرف عليها البرنامج لاحقا ويعمل بها.
وشكل ملفات INI القياسية يكون كالتالي
[القسم] المفتاح=القيمة
المفتاح2=القيمة2
حيث كما نلاحظ هنا القسم هو العنصر الذي تدرج تحته مفاتيح وكل مفتاح بدوره يحتوي على قيمة معينة
والتعامل معها بسيط وسهل
حيث لغة autoit توفر لك دوال جاهزة تساعدك على التخزين في هذه الملفات والقراءة منها
فهيا بنا لنتعرف على ثلاثة من هذه الدوال
ملاحظة :
الدوال التي سأضعها بين أيديكم اليوم هي الدوال الأكثر أهمية, هناك دوال أخرى لم أتطرق إليها نظرا لاستخدامها استخداما متقدما ولكي لا تختلط عليكم الأمور لن أتطرق إليها في هذا الدرس لاكن سنمر عليها لاحقا حينما نقم بالتوسع في الدورة :
الدوال التي سنتعرف عليها اليوم هي
- INIRead (تستخدم لقراءة المحتوى من الملف)
- INIWrite (تستخدم لكتابة المحتوى في الملف)
- INIDelete (تستخدم لحذف مفتاح أو قسم من الملف)
INIRead
تستخدم هذه الدالة لقراءة مفتاح معين من ملف INI حيث شكلها كالتالي :
INIRead(“الملف”, “القسم”, “المفتاح”, “القيمة الإفتراضية”)
حيث هي كما يلي :
الإعداد | وصف |
---|---|
الملف | هنا يتم كتابة مسار الملف الذي تريد القراءة منه (ملاحظة : لا يشترط أن يكن بصيغة INI حيث يمكنكم استخدام أي صيغة تريدونها) |
القسم | حيث هنا نكتب القسم الذي نريد قراءة المفتاح منه |
المفتاح | حيث هنا نقوم بكتابة إسم المفتاح الذي نريد الحصول على قيمته |
القيمة الإفتراضية | هنا نقوم بكتابة القيمة التي نريد الحصول عليها في حال تعذر قراءة المفتاح |
ملاحظة :
جميع الإعدادات في هذه الدالة اجبارية.
في حال نجاح العملية فإن الناتج يكون قيمة المفتاح المراد قراءته أما إذا فشلت العملية فالناتج يكون القيمة الإفتراضية التي استخدمناها في الأعلى.
الآن نمر لمثال عن الدالة
$S_INI = INIRead(“c:\Settings.ini”, “general”, “path”, “c:\test”)
;إظهار النتيجة
msgBox(64, “result”, $S_INI)
;الخروج
exit
INIWrite
هذه الدالة تستخدم لكتابة محتوى في ملف INI
حيث شكلها كالتالي
INIWrite(“الملف”, “القسم”, “المفتاح”, “القيمة”)
وإعداداتها بالتفصيل كما يلي :
الإعداد | وصف |
---|---|
الملف | هنا يتم كتابة مسار الملف الذي تريد الكتابة فيه (ملاحظة : لا يشترط أن يكن بصيغة INI حيث يمكنكم استخدام أي صيغة تريدونها) |
القسم | حيث هنا نكتب القسم الذي نريد كتابة المفتاح فيه |
المفتاح | حيث هنا نقوم بكتابة إسم المفتاح الذي نريد إعطائه قيمة |
القيمة | هنا نقوم بكتابة القيمة التي نريد إعطائها للمفتاح |
ملاحظة :
جميع الإعدادات في هذه الدالة اجبارية
الناتج في هذه الدالة يكون
1 في حال نجاح العملية
0 في حال فشلت العملية أو الملف للقراءة فقط
مثال عن الدالة
;كتابة ملف
INIWrite(“c:\Settings.ini”, “general”, “path”, “d:\new path”)
;قراءة ملف
$S_INI = INIRead(“c:\Settings.ini”, “general”, “path”, “c:\test”)
;إظهار النتيجة
msgBox(64, “result”, $S_INI)
;الخروج
exit
ملاحظات :
في حال أردت كتابة قيمة بترميز مختلف
فبإمكانكم إستخدام دالة FileOpen
التي تطرقنا إليها في الدرس السابق
كما يجب أن يكن المجلد الذي تريد كتابة الملف فيه موجود
أي لا تقوم الدالة بإنشاء المجلد
لاكن الملف ستقوم بإنشائه تلقائيا
INIDelete
هذه الدالة تستخدم لحذف قسم كامل أو مفتاح معين من قسم من ملف INI
وشكل الدالة كما يلي :
INIDelete(“الملف”, “القسم”, “المفتاح”)
الإعداد | وصف |
---|---|
الملف | هنا يتم كتابة مسار الملف الذي تريد الحذف منه (ملاحظة : لا يشترط أن يكن بصيغة INI حيث يمكنكم استخدام أي صيغة تريدونها) |
القسم | حيث هنا نكتب القسم الذي نريد حذفه |
المفتاح | حيث هنا نقوم بكتابة إسم المفتاح الذي نريد حذفه |
ملاحظة :
الإعداد الأخير ليس اجباري
حيث إذا تجاهلت اسم المفتاح فسيقوم بحذف القسم بالكامل
أما إذا أعطيته اسم مفتاح معين فسيقوم بحذف المفتاح فقط
في حال نجاح العملية فالناتج يكون 1
وأما في حال الفشل فيكون الناتج 0
;كتابة ملف
INIWrite(“c:\Settings.ini”, “general”, “path”, “d:\new path”)
;قراءة ملف
$S_INI = INIRead(“c:\Settings.ini”, “general”, “path”, “c:\test”)
;إظهار النتيجة
msgBox(64, “result”, $S_INI)
;حذف المفتاح
INIDelete(“c:\Settings.ini”, “general”, “path”)
;محاولة قراءة المفتاح للتأكد من الحذف
$S_INI = INIRead(“c:\Settings.ini”, “general”, “path”, “c:\test”)
;إظهار النتيجة
msgBox(64, “result”, $S_INI)
;الخروج
exit
خاتمة
هذه الدوال هي الأكثر استخداما من دوال INI
وهناك دوال أخرى لم نتطرق إليها كما ذكرنا في الأعلى بإمكانكم البحث على الأنترنت أو أن تنتظرو إلى أن نتطرق لها مع تقدم الدروس لكي لا تختلط الأمور
ملاحظة :
في الدرس القادم سنتطرق إلى الدوال المهمة في التعامل مع سجل نظام windows (registry)
ثم سنشرع فإنشاء النوافذ والعناصر والتحكم فيها.
من هنا إلى أن يحين موعد الدرس الرابع عشر أستودعكم الله الذي لا تغيب ودائعه
لا تنسوني من دعائكم الصالح
والسلام عليكم ورحمة الله تعالى وبركاته