1. من الضروري فهم بنية ملف INI:
؛تعليق
[اسم القسم]
الكلمة الرئيسية = القيمة
...
تسمح ملفات INI بأقسام متعددة، ويسمح كل قسم بكلمات رئيسية متعددة "=" متبوعة بقيمة الكلمة الأساسية.
هناك ثلاثة أنواع من القيم: السلاسل، والقيم الصحيحة، والقيم المنطقية. يتم تخزين السلسلة في ملف INI بدون علامات الاقتباس، ويتم تمثيل القيمة الحقيقية المنطقية بـ 1، ويتم تمثيل القيمة المنطقية الخاطئة بـ 0.
تبدأ التعليقات بفاصلة منقوطة "؛".
2. التعريف
1. أضف IniFiles في قسم الاستخدامات بالواجهة؛
2. أضف سطرًا إلى قسم تعريف المتغير Var:
myinifile:Tinifile;
بعد ذلك، يمكنك إنشاء وفتح وقراءة وكتابة وعمليات أخرى على المتغير myinifile.
3. افتح ملف INI
myinifile:=Tinifile.create('program.ini');
سينشئ سطر البيان أعلاه اتصالاً بين المتغير myinifile والملف المحدد Program.ini، ومن ثم يمكن قراءة وكتابة قيمة الكلمات الأساسية في الملف Program.ini من خلال المتغير myinifile.
تجدر الإشارة إلى أنه إذا لم يحدد اسم الملف الموجود بين قوسين مسارًا، فسيتم تخزين ملف Program.ini في دليل Windows. تتمثل طريقة تخزين ملف Program.ini في الدليل الحالي للتطبيق في تحديد ذلك مسار كامل واسم الملف. يمكن للعبارتين التاليتين إنجاز هذه الوظيفة
قادر:
اسم الملف:=ExtractFilePath(Paramstr(0))+'program.ini';
myinifile:=Tinifile.Create(filename);
4. اقرأ قيمة الكلمة الرئيسية
بالنسبة لأنواع البيانات الثلاثة، السلاسل والقيم الصحيحة والقيم المنطقية التي تدعمها ملفات INI، توفر فئة TINIfiles ثلاث طرق كائن مختلفة لقراءة قيم الكلمات الأساسية في ملفات INI.
افترض أن المتغيرات المحددة vs وvi وvb هي أنواع سلسلة وعدد صحيح ومنطقية على التوالي.
vs:=myinifile.Readstring('اسم القسم','الكلمة الرئيسية',القيمة الافتراضية);
vi:=myinifile.Readinteger('اسم القسم','الكلمة الرئيسية',القيمة الافتراضية);
vb:=myinifile.Readbool('اسم القسم','الكلمة الرئيسية',القيمة الافتراضية);
القيمة الافتراضية هي القيمة الافتراضية التي يتم إرجاعها عند عدم وجود الكلمة الأساسية في ملف INI.
5. اكتب ملف INI
وبالمثل، توفر فئة TInifile أيضًا ثلاث طرق كائنية مختلفة لكتابة كلمات أساسية من نوع سلسلة، وعدد صحيح، ونوع منطقي إلى ملف INI.
myinifile.writestring('اسم القسم'، 'الكلمة الرئيسية'، متغير أو قيمة سلسلة)؛
myinifile.writeinteger('اسم القسم'، 'الكلمة الرئيسية'، قيمة متغيرة أو عدد صحيح)؛
myinifile.writebool('اسم القسم'، 'الكلمة الرئيسية'، متغير أو صحيح أو خطأ)؛
في حالة عدم وجود ملف INI، سيقوم البيان أعلاه تلقائيًا بإنشاء ملف INI.
6. حذف الكلمات الرئيسية
بالإضافة إلى إضافة كلمة أساسية باستخدام طريقة الكتابة، توفر فئة Tinifile أيضًا طريقة كائن لحذف الكلمات الأساسية:
myinifile.DeleteKey('اسم القسم','الكلمة الرئيسية');
7. قسم التشغيل
يمكن إضافة قسم باستخدام طريقة الكتابة، ويمكن إجراء حذف قسم باستخدام طريقة الكائن التالية:
myinifile.EraseSection('اسم القسم');
بالإضافة إلى ذلك، توفر فئة Tinifile أيضًا ثلاث طرق كائنية للعمل على الأقسام:
يمكن لـ myinifile.readsection('اسم القسم'، متغير TStrings) قراءة جميع أسماء الكلمات الرئيسية في القسم المحدد في متغير قائمة السلاسل؛
myinifile.readsections (متغير TStrings)؛ يمكنه قراءة جميع أسماء الأقسام في ملف INI في متغير قائمة السلسلة.
myinifile.readsectionvalues('اسم القسم', متغير TStrings); يمكنه قراءة جميع الأسطر (بما في ذلك الكلمات الأساسية، =، القيم) للقسم المحدد في ملف INI إلى متغير قائمة السلاسل.
8. الافراج
قم بتحرير myinifile في الموقع المناسب مع العبارة التالية:
myinifile.distory;
9. مثال
فيما يلي مثال بسيط (كما هو موضح في الشكل) لتوضيح طريقة إنشاء ملفات INI وقراءتها وتخزينها. يحتوي ملف myini.ini على قسم "معلمات البرنامج" وثلاث كلمات رئيسية: اسم المستخدم (سلسلة)، وحالة المستخدم الرسمية (قيمة منطقية)، والوقت المنقضي (قيمة عددية). يقرأ البرنامج هذه البيانات عند إنشاء النموذج ويكتب ملف myini.ini عند إصدار النموذج.
قائمة البرامج المصدرية المرفقة
UnitUnit1;
واجهة
الاستخدامات
Windows، الرسائل، SysUtils، المتغيرات، الفئات، الرسومات، عناصر التحكم، النماذج،
مربعات الحوار، IniFiles، StdCtrls، ExtCtrls؛
يكتب
TForm1=الفئة(TForm)
تحرير1:تحرير؛
تحرير2:تحرير؛
CheckBox1:TCcheckBox;
Timer1:TTimer;
الإجراءFormCreate(Sender:TObject);
الإجراءFormDestroy(Sender:TObject);
الإجراءTimer1Timer(Sender:TObject);
خاص
{التصريحات الخاصة}
عام
{التصريحات العامة}
نهاية؛
فار
Form1:TForm1;
myinifile:Tinifile;
تطبيق
{$R*.dfm}
الإجراءTForm1.FormCreate(Sender:TObject);
فار
اسم الملف:سلسلة؛
يبدأ
اسم الملف:=ExtractFilePath(paramstr(0))+´myini.ini´;
myinifile:=TInifile.Create(filename);
edit1.Text:=myinifile.readstring(´program settings´,´user name´,´default user name´);
Edit2.text:=inttostr(myinifile.readinteger('معلمات البرنامج','وقت التشغيل المنقضي',0));
checkbox1.Checked:=myinifile.readbool('معلمات البرنامج','سواء كان مستخدمًا رسميًا',خطأ);
نهاية؛
الإجراءTForm1.FormDestroy(Sender:TObject);
يبدأ
myinifile.writestring('معلمات البرنامج','اسم المستخدم',edit1.Text);
myinifile.writeinteger('معلمات البرنامج','وقت التشغيل المنقضي',strtoint(edit2.text));
myinifile.writebool('معلمات البرنامج', 'هل هو مستخدم رسمي', checkbox1.Checked);
myinifile.Destroy;
نهاية؛
الإجراءTForm1.Timer1Timer(Sender:TObject);
يبدأ
edit2.Text:=inttostr(strtoint(edit2.text)+1);
نهاية؛
نهاية.
مرر هذا المثال تصحيح الأخطاء ضمن Delphi6.0+WinXP.