一、要想讀取配置文件首先要學會寫配置文件,那么配置文件是什么結構呢?請看下圖:
配置文件由兩部分構成:字段名和鍵名。可以看到我圈出來兩個顏色的方框,其中紅色的兩個方框就是字段名,每個字段下包含其字段的鍵名和鍵值,藍色的方框就是鍵名和鍵值。
二、知道配置文件的結構之后我們就可以讀配置文件了,
讀配置文件要用到函數GetPrivateProfileString();看一下函數說明
DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpDefaut,LPSTR lpReturnedString,DWORD nSize,LPCTSTR lpFileName);
頭文件:
windows.h
返回值 :
DWORD -----------------------------返回字符串的實際大小,失敗返回-1
形參:
LPCTSTR lpAppName ---------- INI配置文件中的一個字段名,也就是上圖中紅色方框中的內容,這個字串不區分大小寫;
LPCTSTR lpKeyName ---------- INI配置文件下的一個key鍵名,也就是上圖中藍色方框的內容,這個字 串不區分大小寫;
LPCTSTR lpDefaut ----------------如果配置文件中沒有找到前兩個的參數值,則將此參數默認值賦給變量。一般設為空("");
LPSTR lpReturnedString ---------指定一個字符串緩沖區,用來接收INI文件中的返回值的CString對象;
DWORD nSize ----------------------指的是前一個參數對象的緩沖區的大小
LPCTSTR lpFileName ------------完整的INI文件路徑名
舉個例子還是上圖中的配置文件,現在我要讀取config下的Port字符:
char port[20]; //接收配置文件字符的緩沖區
DWORD res; //返回值
res= GetPrivateProfileString("config", "Port", "", port, sizeof(port), "config.ini");
三、如果現在我們需要寫配置文件呢
讀配置文件要用到函數WritePrivateProfileString();看一下函數說明
bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);
參數基本同讀配置文件,
返回值為bool類型,返回是否寫成功
直接舉例子吧:我要在配置文件config.ini下寫一個config2字段中的一個ip鍵值
bool res; //返回值
res= WritePrivateProfileString("config2", "Ip", "192.168.0.12", "config.ini");