C/C++ INI文件操作

一、INI文件用途:
1、存儲程序的初始化信息;
2、存儲需要保存的數據信息。

二、INI文件結構:
由節名、鍵名、鍵值組成。形式如下:
[節名]
鍵名 = 鍵值

備註:一個INI文件,可以用多個節。

三、讀取INI文件
1、WritePrivateProfileString
該函數用於向INI文件中寫入一個字符串數據。
函數原型如下:

BOOL WritePrivateProfileString(
  LPCTSTR lpAppName,  // pointer to section name
  LPCTSTR lpKeyName,  // pointer to key name
  LPCTSTR lpString,   // pointer to string to add
  LPCTSTR lpFileName  // pointer to initialization filename
);

參數說明:
lpAppName:指定節名,以空終止結尾的字符串。如果INI文件中節名不存在,將創建一個節名。
lpKeyName:鍵名,以空終止結尾的字符串。如果INI文件中該鍵名不存在,將創建一個鍵名。如果該參數爲NULL,包括節及節下的所有項目都將被刪除。
lpString:寫到鍵值中的數據,以空終止結尾的字符串。
lpFileName:INI文件的名稱,以空終止結尾的字符串。指定需要寫入數據的INI文件,如果指定的INI文件不存在將創建。

返回值:
如果函數成功將字符串複製到初始化文件,返回值是非零。
如果函數失敗,刷新緩存版本的最近訪問初始化文件,返回值是零。
2、GetPrivateProfileString
該函數用於獲取INI文件中的鍵值。
函數原型如下:

DWORD GetPrivateProfileString(
  LPCTSTR lpAppName,        // points to section name
  LPCTSTR lpKeyName,        // points to key name
  LPCTSTR lpDefault,        // points to default string
  LPTSTR lpReturnedString,  // points to destination buffer
  DWORD nSize,              // size of destination buffer
  LPCTSTR lpFileName        // points to initialization filename
);

參數說明:
lpAppName:指定節名,以空終止結尾的字符串。如果該參數爲NULL,函數將複製所有的節名到所指定的緩衝區中。
lpKeyName:鍵名,以空終止結尾的字符串。如果該參數爲NULL,函數將lpAppName節下所有的鍵名複製到lpReturnedString緩衝區。
lpDefault:默認值,以空終止結尾的字符串。如果獲取鍵值的鍵名不存在時,返回設置的默認值。
lpReturnedString:用於接受數據的緩衝區。
nSize:以字符爲單位表示lpReturnedString緩衝區的大小。
lpFileName:INI文件名稱,以空終止結尾的字符串。

返回值:
返回值是字符複製到緩衝區的數量,不包括終止null字符。
3、GetPrivateProfileInt
該函數用於從INI文件中獲取整型數據。
函數原型如下:

UINT GetPrivateProfileInt(  LPCTSTR lpAppName,  // address of section name
  LPCTSTR lpKeyName,  // address of key name
  INT nDefault,       // return value if key name is not found
  LPCTSTR lpFileName  // address of initialization filename
); 

參數說明:
lpAppName:節名。
lpKeyName:鍵名。
nDefault:默認值。
lpFileName:INI文件名稱。

返回值:
函數返回實際讀取的整數值。
4、GetPrivateProfileSectionNames
該函數用於返回INI文件中的所有節名。
函數原型如下:

DWORD GetPrivateProfileSectionNames(
  LPTSTR lpszReturnBuffer,  // address of return buffer
  DWORD nSize,              // size of return buffer
  LPCTSTR lpFileName        // address of initialization filename
);

參數說明:
lpszReturnBuffer:接受節名的數據緩衝區。
nSize:緩衝區的大小。
lpFileName:INI文件名稱。
返回值:
返回值指定數量的字符複製到指定的緩衝,不包括終止null字符。
如果緩衝區沒有大到足以包含所有相關的部分名稱指定的初始化文件,返回值等於指定的長度nSize - 2。
5、GetPrivateProfileSection
該函數用於獲取指定節下的所有的鍵名和鍵值。
函數原型如下:

DWORD GetPrivateProfileSection(
  LPCTSTR lpAppName,        // address of section name
  LPTSTR lpReturnedString,  // address of return buffer
  DWORD nSize,              // size of return buffer
  LPCTSTR lpFileName        // address of initialization filename
);

參數說明:
lpAppName:節名。
lpReturnedString:用於接受數據的緩衝區。
nSize:緩衝區的大小。
lpFileName:INI文件名稱。
返回值:
返回值指定數量的字符複製到緩衝區,不包括終止null字符。
如果緩衝區沒有大到足以包含所有與指定相關聯的鍵名稱和值對部分,返回值等於nSize - 2。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章