C++builder利用GetPrivateProfileString讀取配置檔案
寫入.ini檔案:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);
讀取.ini檔案:DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpDefaut,LPSTR lpReturnedString,DWORD nSize,LPCTSTR lpFileName);
讀取整形值:UINT GetPrivateProfileInt(LPCTSTR lpAppName,LPCTSTR lpKeyName,INT nDefault,LPCTSTR lpFileName);
其中個引數的意思:
LPCTSTR lpAppName ------- INI檔案中的一個欄位名
LPCTSTR lpKeyName -------- lpAppName 下的一個鍵名,也就是裡面具體的變數名
LPCTSTR lpString ---------是鍵值,也就是變數的值, 必須為LPCTSTR或CString型別
LPCTSTR lpFileName --------完整的INI檔案路徑名
LPCTSTR lpDefaut ----------如果沒有其前兩個引數值,則將此值賦給變數
LPSTR lpReturnedString --------接收INI檔案中的值的CString物件,即接收緩衝區
DWORD nSize ------接收緩衝區的大小。
Demo:
準備工作如下:
strcpy(szAppName, "交易伺服器設定");
sprintf(szKeyName, "當前伺服器");
char szValue[255] = {0};
m_strIniFileName = “D:\Clientchange\Build\test.ini”;
DWORD temp = GetPrivateProfileString(szAppName, szKeyName, "沒有成功了123456789", szValue, sizeof(szValue), m_strIniFileName.c_str());
ShowMessage(temp);
我們假如“D:\Clientchange\Build\”路徑下是有test.ini這個檔案的。
檔案截圖:
那麼得到結果應該是,szValue = “交易03”;temp的值為字串szValue的長度,這裡的“交易03”佔用6個字元;
假如檔案test.ini不存在,後者因為其他原因造成GetPrivateProfileString呼叫失敗;
那麼得到的結果是就是szValue = lpDefaut = "沒有成功了123456789",temp的值同樣為szValue的長度,這裡的"沒有成功了123456789",佔用19個字元。