C++ Builder中 TMemIniFile讀取效率比TIniFile快很多
阿新 • • 發佈:2018-11-16
ini 檔案操作記要(2): 使用 TMemIniFile
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedureFormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses IniFiles; var ini: TMemIniFile; procedure TForm1.FormCreate(Sender: TObject); begin ini := TMemIniFile.Create('c:\temp\test.ini'); end; //寫入 procedure TForm1.Button1Click(Sender: TObject); begin ini.WriteString('AAA','A1','AAA-String'); //其他也都和 IniFile 一樣使用 // ini.WriteInteger(); // ini.WriteBool(); // ini.WriteDate(); // ini.WriteTime(); // ini.WriteDateTime(); // ini.WriteFloat(); // ini.WriteBinaryStream(); //ini.UpdateFile; //因為 TMemIniFile 是記憶體操作, 這樣才能儲存到檔案 end; //讀出及其他 procedure TForm1.Button2Click(Sender: TObject); var s: string; begin s := ini.ReadString('AAA','A1','預設值'); ShowMessage(s); //AAA-String //其他讀入命令也都和 IniFile 一樣使用 // ini.ReadInteger(); // ini.ReadBool(); // ini.ReadDate(); // ini.ReadTime(); // ini.ReadDateTime(); // ini.ReadFloat(); // ini.ReadBinaryStream(); //還有四個常用方法也是和 IniFile 一樣的 //ini.DeleteKey(); //ini.EraseSection(); //ini.ReadSection(); //ini.ReadSections(); //另外有三個 IniFile 中沒有的方法也容易使用 //ini.GetStrings(List: TStrings); //ini.SetStrings(List: TStrings); //ini.Rename(const FileName: string; Reload: Boolean); //其中 Rename 中的第二個 Boolean 引數如果為 True 將會重新整理讀入 end; procedure TForm1.FormDestroy(Sender: TObject); begin ini.Free; end; end.