1. 程式人生 > >C++builder利用GetPrivateProfileString讀取配置檔案

C++builder利用GetPrivateProfileString讀取配置檔案

 GetPrivateProfileString配置檔案中經常用到ini檔案,在C++builder或者Delphi中其函式分別為:

寫入.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個字元。