C/C++ 關於如何讀寫ini配置檔案 (小結)
- 讀取
- 讀取字元
DWORD GetPrivateProfileString(
LPCTSTR lpAppName, // INI檔案中的一個欄位名[節名]可以有很多個節名LPCTSTR lpKeyName, // lpAppName 下的一個鍵名,也就是裡面具體的變數名
LPCTSTR lpDefault, // 如果lpReturnedString為空,則把個變數賦給lpReturnedString
LPTSTR lpReturnedString, // 存放鍵值的指標變數,用於接收INI檔案中鍵值(資料)的接收緩衝區
DWORD nSize,
LPCTSTR lpFileName // INI檔案的路徑
); - 讀取整型值 (返回值為讀到的整)
UINT GetPrivateProfileInt(
LPCTSTR lpAppName, // INI檔案中的一個欄位名[節名]可以有很多個節名
LPCTSTR lpKeyName, // lpAppName 下的一個鍵名,也就是裡面具體的變數名
INT nDefault, // 如果沒有找到指定的資料返回,則把個變數值賦給返回值LPCTSTR lpFileName // INI檔案的路徑
);
- 寫入
- 寫入字元
BOOL WritePrivateProfileString(
LPCTSTRLPCTSTR lpKeyName, // lpAppName 下的一個鍵名,也就是裡面具體的變數名
LPCTSTR lpString, // 鍵值,也就是資料
LPCTSTR lpFileName // INI檔案的路徑
); - 寫入整型
- 讀寫INI檔案時相對路徑和絕對路徑都可以,根據實際情況選擇
"..\\IniFileName.ini" // 這樣的為相對路徑
"D:\\IniFileName.ini" // 這樣的為絕對路徑
- MAX_PATH:是微軟最大路徑佔的位元組所設的巨集
寫入的ini檔案 分為:節、鍵名、鍵值
- 舉個栗子:
// XX.ini
[串列埠配置]
波特率=19200
有了理論,再看看實踐的demo:
- 寫INI檔案:
LPTSTR lpPath = new char[MAX_PATH];
strcpy(lpPath, "D:\\IniFileName.ini");
WritePrivateProfileString("LiMing", "Sex", "Man", lpPath);
WritePrivateProfileString("LiMing", "Age", "20", lpPath);
WritePrivateProfileString("Fangfang", "Sex", "Woman", lpPath);
WritePrivateProfileString("Fangfang", "Age", "21", lpPath);
delete [] lpPath;
INI檔案如下:
[LiMing]
Sex=Man
Age=20
[Fangfang]
Sex=Woman
Age=21
- 讀INI檔案:
LPTSTR lpPath = new char[MAX_PATH];
LPTSTR LiMingSex = new char[6];
int LiMingAge;
LPTSTR FangfangSex = new char[6];
int FangfangAge;
strcpy(lpPath, "..\\IniFileName.ini");
GetPrivateProfileString("LiMing", "Sex", "", LiMingSex, 6, lpPath);
LiMingAge = GetPrivateProfileInt("LiMing", "Age", 0, lpPath);
GetPrivateProfileString("Fangfang", "Sex", "", FangfangSex, 6, lpPath);
FangfangAge = GetPrivateProfileInt("Fangfang", "Age", 0, lpPath);
delete [] lpPath;