海阔天空-wide-area

海阔天空,随心所欲,有什么,说什么,Linux,VC,Network Programming

星期五, 十月 21, 2005

VisualC++:利用API函数直接读写ini文件

利用API函数直接读写ini文件

利用API函数直接读写ini文件

我们可利用API函数直接读写ini文件。

㈠ 读ini文件中的项值

① 读整数值:

UINT GetPrivateProfileInt(LPCTSTR lpAppName,LPCTSTR lpKeyName,INT
nDefault,LPCSTR lpFileName);

lpAppName为段名,lpKeyName为项名,nDefault为找不到该项时返回的默认值,
lpFileName为ini文件名

返回值:若成功,返回指定项后的整数值,若该项不存在,返回nDefault的值

如:读取RAV.ini文件中[INSTALLED]段的FWBASE2K项的值

int FwbBase2K = ::GetPrivateProfileInt("INSTALLED", "FWBASE2K", 0,
"RAV.ini");

如果[INSTALLED]段的FWBASE2K项存在,则FwbBase2K的值为读出的值,若不存在,
则为函数调用中指定的0。

② 读字符串:

DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR
lpKeyName,LPCTSTR lpDefault,LPTSTR lpReturnedString,DWORD nSize,LPCTSTR
lpFileName);

lpAppName为段名,lpKeyName为项名,lpDefault为找不到该项时返回的默认值,
lpReturnedString指向接收结果的字符串缓冲区,nSize为缓冲区长度,
lpFileName为ini文件名

执行结果:若成功,lpReturnedString指示的串中为读出的项值,若该项不存在,
lpReturnedString中为lpDefault的值

如:读取RAV.ini文件中[Skin]段的Path项的值

CString PathName; //接收串的变量

::GetPrivateProfileString("Skin", "Path", "",
PathName.GetBuffer(MAX_PATH), MAX_PATH, "RAV.ini");

PathName.ReleaseBuffer(); //释放多余空间

MAX_PATH为系统预定义的常数,其值可能是255。

㈡ 把数据写入ini文件

写入时没有写入整数的函数,只有写入字符串的函数

BOOL WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR
lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);

lpAppName为段名,lpKeyName为项名,lpString为写入的字符串,lpFileName为
ini文件名

返回值:若成功,返回true,否则返回false

若写入时,该ini文件不存在,则这个函数会自动建立这个文件,并建立相应的段
和项。

如:把RAV.ini文件中[INSTALLED]段的FWBASE2K项的值设置为2,由于这是整数,
应先转换为字符串后再写入

CString str;

str.Format("%d", 2); //把写入的整数转换为字符串

::WritePrivateProfileString( "INSTALLED", "FWBASE2K", str, "RAV.ini" );
//写入ini文件

注意:实际应用中,ini文件名应采用绝对路径名,否则可能找不到要读写的ini文件。

0 Comments:

发表评论

<< Home