ไฟล์ INI มีบทบาทสำคัญในการกำหนดค่าระบบและการบันทึกและการตั้งค่าพารามิเตอร์ของแอปพลิเคชัน ดังนั้น กลุ่มการเขียนโปรแกรมแบบวิชวล เช่น VB, VC, VFP, Delphi ฯลฯ จึงจัดให้มีวิธีการอ่านและเขียนไฟล์ INI ดำเนินการในไฟล์ Delphi. ซึ่งกระชับที่สุด เนื่องจาก Delphi มีคลาส TInifile ซึ่งช่วยให้เราสามารถประมวลผล ไฟล์ INI ได้อย่างยืดหยุ่น มาก โครงสร้างไฟล์ INI [ชื่อส่วน] คำหลักไฟล์ ini 1 = ค่า 1 คำหลัก 2 = ค่า 2 ไฟล์ 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 ในไดเร็กทอรีปัจจุบันของแอปพลิเคชันคือการระบุ เส้นทางที่สมบูรณ์และชื่อไฟล์ สองคำสั่งต่อไปนี้สามารถทำให้ฟังก์ชันนี้สมบูรณ์ได้: Filename:=ExtractFilePath(Paramstr(0))+program.ini;myinifile:=Tinifile.Create(filename);
5. เขียนไฟล์ INI
ในทำนองเดียวกัน คลาส TInifile ยังมีวิธีอ็อบเจ็กต์ที่แตกต่างกันสามวิธีในการเขียนสตริง จำนวนเต็ม และคีย์เวิร์ดประเภทบูลีนลงในไฟล์ INI
myinifile.writestring(ชื่อส่วน, คำสำคัญ, ตัวแปรหรือค่าสตริง);
myinifile.writeinteger(ชื่อส่วน, คำสำคัญ, ตัวแปรหรือค่าจำนวนเต็ม);
myinifile.writebool(ชื่อส่วน, คำสำคัญ, ตัวแปรหรือจริงหรือเท็จ);
เมื่อไม่มีไฟล์ INI คำสั่งข้างต้นจะสร้างไฟล์ INI โดยอัตโนมัติ
6. ลบคำหลัก
นอกเหนือจากการเพิ่มคีย์เวิร์ดโดยใช้วิธีเขียนแล้ว คลาส Tinifile ยังมีวิธีอ็อบเจ็กต์สำหรับการลบคีย์เวิร์ดด้วย:
myinifile.DeleteKey(ชื่อส่วน,คำสำคัญ);
7. การดำเนินงานส่วน
การเพิ่มส่วนสามารถทำได้ด้วยวิธีเขียน และการลบส่วนสามารถทำได้ด้วยวิธีอ็อบเจ็กต์ต่อไปนี้:
myinifile.EraseSection (ชื่อส่วน);
นอกจากนี้ คลาส Tinifile ยังมีวิธีอ็อบเจ็กต์สามวิธีเพื่อดำเนินการในส่วนต่างๆ: myinifile.readsection (ชื่อส่วน, ตัวแปร TStrings) ชื่อคีย์ทั้งหมดในส่วนที่ระบุสามารถอ่านลงในตัวแปรรายการสตริงได้ (ตัวแปร TStrings) ; สามารถอ่านชื่อส่วนทั้งหมดในไฟล์ INI ลงในตัวแปรรายการสตริงได้ myinifile.readsectionvalues (ชื่อส่วน, ตัวแปร TStrings); สามารถอ่านบรรทัดทั้งหมด (รวมถึงคำหลัก, =, ค่า) ของส่วนที่ระบุในไฟล์ INI ลงในตัวแปรรายการสตริง
8. ปล่อย
ปล่อย myinifile ในตำแหน่งที่เหมาะสมโดยใช้คำสั่งต่อไปนี้:
myinifile.disstory;
นี่คือตัวอย่างที่เฉพาะเจาะจง ซอร์สโค้ดมีดังนี้ ไฟล์ myini.ini ถูกสร้างขึ้น โดยมีส่วนชื่อ newini และคำหลักสามคำ ได้แก่ "ชื่อผู้ใช้" "เวลาที่ผ่านไป" และ "ไม่ว่าจะเป็นผู้ใช้อย่างเป็นทางการหรือไม่" สำหรับเอฟเฟกต์การทำงาน คุณสามารถกรอก "ชื่อผู้ใช้" ใน edit1; edit2 จะแสดงเวลา และไม่สามารถเปลี่ยนแปลงค่าได้ ช่องทำเครื่องหมาย 1 จะช่วยประหยัดเวลาและ "ชื่อผู้ใช้" โดยการทำเครื่องหมายลงในไฟล์ myini.ini เปิดแอปพลิเคชันอีกครั้ง หากมีการแก้ไขเวลาที่บันทึกไว้และ "ชื่อผู้ใช้" ที่กรอกในไฟล์ myini.ini ผลลัพธ์จะเหมือนกับเมื่อแก้ไขในขณะที่โปรแกรมกำลังทำงาน
หน่วย Unit1; อินเทอร์เฟซ Windows, ข้อความ, SysUtils, ตัวแปร, คลาส, กราฟิก, การควบคุม, แบบฟอร์ม, กล่องโต้ตอบ, inifiles, StdCtrls, ExtCtrls; {call inifiles class} ประเภท TForm1 = class (TForm) Label1: TLabel; Label3: TLabel; แก้ไข 1: TEdit; แก้ไข 2: TEdit; CheckBox1: TCheckBox; ขั้นตอน FormCreate (ผู้ส่ง: TObject); ขั้นตอน FormDestroy (ผู้ส่ง: TObject); ขั้นตอน Timer1Timer (ผู้ส่ง: TObject); ส่วนตัว { ประกาศส่วนตัว } สาธารณะ { การประกาศสาธารณะ } สิ้นสุด; var Form1: TForm1; กำหนดอินสแตนซ์ของกระบวนการ class}{$R *.dfm} TForm1.FormCreate (ผู้ส่ง: TObject);varfilename:string;begin{สองบรรทัดต่อไปนี้เขียนในรูปแบบของการสร้างไฟล์ ini ภายใต้พาธของแอปพลิเคชัน}filename:=ExtractFilePath(paramstr(0))+'myini.ini';myinifile:= TInifile.Create( ชื่อไฟล์);edit1.Text:=myinifile.ReadString(' newini','ชื่อผู้ใช้','Hu Changhao');edit2.text:=inttostr(myinifile.readinteger('newini','Elapsed running time',0));checkbox1.Checked:=myinifile.readbool('newini' ' ,'เป็นผู้ใช้อย่างเป็นทางการหรือไม่',False);{newini คือชื่อส่วน ฟิลด์ตรงกลางคือชื่อของคีย์เวิร์ด และฟิลด์ที่สามคือค่าเริ่มต้น เมื่อไม่มี myini.ini คำสั่งข้างต้นจะสร้างไฟล์นี้โดยอัตโนมัติ เครื่องหมายคำพูดในบรรทัดด้านบนคือเครื่องหมายคำพูดเดี่ยว}end;procedure TForm1.FormDestroy(Sender: TObject);begin myinifile.writestring('newini','user name',edit1.Text);myinifile.writeinteger('newini','Elapsed running time',strtoint(edit2.text));myinifile.writebool('newini','ไม่ว่า ผู้ใช้อย่างเป็นทางการ ', checkbox1.Checked); myinifile.Destroy; end; ขั้นตอน TForm1.Timer1Timer (ผู้ส่ง: TObject); เริ่มต้น edit2.Text:=inttostr(strtoint(edit2.text)+1);end;end.
ไฟล์ .ini