วิธีการใช้งานไฟล์ Ini?
ไฟล์ INI มีบทบาทสำคัญในการกำหนดค่าระบบและการประหยัดพารามิเตอร์และการตั้งค่าแอปพลิเคชันดังนั้นครอบครัวการเขียนโปรแกรมด้วยภาพเช่น VB, VC, VFP, Delphi ฯลฯ ให้วิธีการสำหรับการอ่านและการเขียนไฟล์ INI โดยที่ INI ทำงานใน Delphi ไฟล์เป็นไฟล์ที่ง่ายที่สุดเนื่องจาก Delphi3 มีคลาส Tinifile ซึ่งช่วยให้เราสามารถจัดการไฟล์ INI ได้อย่างยืดหยุ่นมาก
1. จำเป็นต้องเข้าใจโครงสร้างของไฟล์ INI:
; แสดงความคิดเห็น
[ชื่อส่วน]
คำสำคัญ = ค่า
-
ไฟล์ INI อนุญาตให้หลายส่วนและแต่ละส่วนอนุญาตให้มีคำหลักหลายคำตามด้วยค่าของคำหลัก
ค่ามีสามประเภท: สตริงค่าจำนวนเต็มและค่าบูลีน สตริงจะถูกเก็บไว้ในไฟล์ INI โดยไม่มีเครื่องหมายคำพูดค่าบูลีนที่แท้จริงจะถูกแสดงโดย 1 และค่าบูลีนเท็จจะแสดงโดย 0
ความคิดเห็นเริ่มต้นด้วยเครื่องหมายอัฒภาค ";"
2. คำจำกัดความ
1. เพิ่ม inifiles ลงในส่วนการใช้งานของอินเทอร์เฟซ
2. เพิ่มบรรทัดไปยังส่วนนิยามตัวแปร VAR:
MyInifile: Tinifile;
จากนั้นคุณสามารถสร้างเปิดอ่านเขียนและการดำเนินการอื่น ๆ ในตัวแปร myinifile
3. เปิดไฟล์ Ini
myInifile: = tinifile.create ('program.ini');
คำสั่งบรรทัดข้างต้นจะสร้างการเชื่อมต่อระหว่างตัวแปร myInifile และโปรแกรมไฟล์เฉพาะโปรแกรม INI และจากนั้นคุณสามารถใช้ myInifile ตัวแปรเพื่ออ่านและเขียนค่าคำหลักในไฟล์ program.ini
เป็นที่น่าสังเกตว่าหากชื่อไฟล์ในวงเล็บไม่ได้ระบุเส้นทางแล้วไฟล์ program.ini จะถูกเก็บไว้ในไดเรกทอรี Windows
วิธีการจัดเก็บไฟล์ program.ini ในไดเรกทอรีปัจจุบันของแอปพลิเคชันคือการระบุเส้นทางที่สมบูรณ์และชื่อไฟล์สำหรับมัน สองข้อความต่อไปนี้สามารถกรอกฟังก์ชั่นนี้:
ชื่อไฟล์: = ExtractFilePath (Paramstr (0))+'program.ini';
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);
8. ปล่อย
ปล่อย myInifile ในตำแหน่งที่เหมาะสมด้วยคำสั่งต่อไปนี้:
myinifile.distory;
เก้า
ต่อไปนี้ใช้ตัวอย่างง่ายๆ (ดังแสดงในรูป) เพื่อแสดงวิธีการสร้างการอ่านและจัดเก็บไฟล์ INI ไฟล์ myini.ini มีส่วนย่อย "พารามิเตอร์โปรแกรม" และคำหลักสามคำ: ชื่อผู้ใช้ (สตริง) ไม่ว่าจะเป็นผู้ใช้อย่างเป็นทางการ (ค่าบูลีน) และเวลาทำงาน (ค่าอินทิกรัล) โปรแกรมอ่านข้อมูลนี้ในการสร้างแบบฟอร์มและเขียนไฟล์ myini.ini เมื่อมีการปล่อยแบบฟอร์ม
รายการโปรแกรมต้นทาง
บทที่หน่วย 1;
ส่วนต่อประสาน
ใช้
Windows, ข้อความ, sysutils, คลาส, กราฟิก, การควบคุม, รูปแบบ, กล่องโต้ตอบ, inifiles, stdctrls, extctrls;
พิมพ์
tform1 = คลาส (tform)
Edit1: Tedit;
CheckBox1: tcheckbox;
แก้ไข 2: Tedit;
label1: tlabel;
label2: tlabel;
ตัวจับเวลา 1: ttimer;
label3: tlabel;
ProcedureFormCreate (ผู้ส่ง: tobject);
ProcedureFormDestroy (ผู้ส่ง: tobject);
ProcedureTimer1Timer (ผู้ส่ง: tobject);
ส่วนตัว
{privatedeclarations}
สาธารณะ
{PublicDeclarations}
จบ;
วาจา
Form1: TFORM1;
การดำเนินการ
วาจา
MyInifile: Tinifile;
{$ r*.dfm}
ProcedureTform1.FormCreate (ผู้ส่ง: tobject);
วาจา
ชื่อไฟล์: สตริง;
เริ่ม
ชื่อไฟล์: = ExtractFilePath (paramstr (0))+'myini.ini';
myInifile: = tinifile.create (ชื่อไฟล์);
edit1.text: = myInifile.ReadString ('พารามิเตอร์โปรแกรม', 'ชื่อผู้ใช้', 'ชื่อผู้ใช้เริ่มต้น');
edit2.text: = inttoStr (myInifile.readinteger ('พารามิเตอร์โปรแกรม', 'เวลาที่รัน', 0));
CheckBox1.Checked: = myInifile.ReadBool ('พารามิเตอร์โปรแกรม', 'เป็นผู้ใช้อย่างเป็นทางการ', FALSE);
จบ;
ProcedureTform1.FormDestroy (ผู้ส่ง: tobject);
เริ่ม
myInifile.writestring ('โปรแกรมโปรแกรม', 'ชื่อผู้ใช้', edit1.text);
MyInifile.WriteInteger ('พารามิเตอร์โปรแกรม', 'Runned Time', StrToint (Edit2.Text));
myInifile.writeBool ('พารามิเตอร์โปรแกรม', 'เป็นผู้ใช้อย่างเป็นทางการ', checkbox1.Checked);
MyInifile.Destroy;
จบ;
ProcedureTform1.Timer1Timer (ผู้ส่ง: tobject);
เริ่ม
edit2.text: = inttoStr (strToint (edit2.text) +1);
จบ;
จบ.