註冊表隨軟體增加龐大易出錯;少量設定(視窗位置、使用者偏好)用 WIN.INI 更直觀、易手動編輯、備份遷移簡單。
BOOL WriteProfileString(LPCTSTR lpAppName, LPCTSTR lpKeyName, LPCTSTR lpString);
UINT GetProfileInt(LPCTSTR lpAppName, LPCTSTR lpKeyName, INT nDefault);
lpAppName:區段名稱(方括號內,如 [MyApp])。lpKeyName:項目名稱(等號左側)。lpString:項目值(等號右側)。nDefault:讀取失敗時傳回的預設值。lpKeyName = NULL → 清除整個區段。lpString = NULL → 清除該項目(整行移除)。表單:Edit1(輸入值)、Edit2(顯示讀取值)、Button1「寫入」、Button2「讀取」、Button3「清除」。
// Button1 寫入
void __fastcall TForm1::Button1Click(TObject *Sender) {
WriteProfileString("範例程式", "項目", Edit1->Text.c_str());
}
// Button2 讀取
void __fastcall TForm1::Button2Click(TObject *Sender) {
UINT val = GetProfileInt("範例程式", "項目", 100); // 預設 100
Edit2->Text = IntToStr(val);
}
// Button3 清除
void __fastcall TForm1::Button3Click(TObject *Sender) {
WriteProfileString("範例程式", NULL, NULL); // 清除整區段
}
3265 點「寫入」。sysedit 檢視 WIN.INI 尾端:
[範例程式]
項目=3265
Edit2 顯示 3265。IniFile->WriteString("Section", "Key", "Value"),跨平台支援較好。TRegistry 或 RegSetValueEx,適合系統層級設定。