设为首页 加入收藏

TOP

VC中用函数读写ini文件的方法
2014-11-01 08:00:15 来源: 作者: 【 】 浏览:55
Tags:中用 函数 读写 ini 文件 方法

  ini文件(即Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的Section中相应的Key的值,而这只要借助几个函数即可完成。


  一、向ini文件中写入信息的函数


  1. 把信息写入系统的win.ini文件


  BOOL WriteProfileString(


  LPCTSTR lpAppName, // 节的名字,是一个以0结束的字符串


  LPCTSTR lpKeyName, // 键的名字,是一个以0结束的字符串。若为NULL,则删除整个节


  LPCTSTR lpString // 键的值,是一个以0结束的字符串。若为NULL,则删除对应的键


  )


  2. 把信息写入自己定义的.ini文件


  BOOL WritePrivateProfileString(


  LPCTSTR lpAppName, // 同上


  LPCTSTR lpKeyName, // 同上


  LPCTSTR lpString, // 同上


  LPCTSTR lpFileName // 要写入的文件的文件名。若该ini文件与程序在同一个目录下,也可使用相对


  //路径,否则需要给出绝度路径。


  )


  如:


  ::WriteProfileString("Test","id","xym");


  //在win.ini中创建一个Test节,并在该节中创建一个键id,其值为xym


  ::WritePrivateProfileString("Test","id","xym","d:\\vc\\Ex1\\ex1.ini");


  //在Ex1目录下的ex1.ini中创建一个Test节,并在该节中创建一个键id,其值为xym


  //若Ex1.ini文件与读写该文件的程序在同一个目录下,则上面语句也可写为:


  ::WritePrivateProfileString("Test","id","xym",".\\ex1.ini");


  需要注意的是,C系列的语言中,转义字符'\\'表示反斜线'\'。另外,当使用相对路径时,\\前的.号不能丢掉了。


  二、从ini文件中读取数据的函数


  1、从系统的win.ini文件中读取信息


  (1) 读取字符串


  DWORD GetProfileString(


  LPCTSTR lpAppName, // 节名


  LPCTSTR lpKeyName, // 键名,读取该键的值


  LPCTSTR lpDefault, // 若指定的键不存在,该值作为读取的默认值


  LPTSTR lpReturnedString, // 一个指向缓冲区的指针,接收读取的字符串


  DWORD nSize // 指定lpReturnedString指向的缓冲区的大小


  )


  如:


  CString str;


  ::GetProfileString("Test","id","Error",str.GetBuffer(20),20);


  (2) 读取整数


  UINT GetProfileInt(


  LPCTSTR lpAppName, // 同上


  LPCTSTR lpKeyName, // 同上


  INT nDefault // 若指定的键名不存在,该值作为读取的默认值


  )


  如使用以下语句写入了年龄信息:


  ::WriteProfileString("Test","age","25");


  //在win.ini中创建一个Test节,并在该节中创建一个键age,其值为25


  则可用以下语句读取age键的值:


  int age;


  age=::GetProfileInt("Test","age",0);


  2、从自己的ini文件中读取信息


  (1) 读取字符串


  DWORD GetPrivateProfileString(


  LPCTSTR lpAppName, // 同1(1)


  LPCTSTR lpKeyName, // 同1(1)


  LPCTSTR lpDefault, // 同1(1)


  LPTSTR lpReturnedString, // 同1(1)


  DWORD nSize, // 同1(1)


  LPCTSTR lpFileName // 读取信息的文件名。若该ini文件与程序在同一个目录下,也可使用相


  //对路径,否则需要给出绝度路径。


  )


  如:


  CString str;


  ::GetPrivateProfileString("Test","id","Error",str.GetBuffer(20),20,".\\ex1.ini");


  或:


  ::GetPrivateProfileString("Test","id","Error",str.GetBuffer(20),20,"d:\\vc\\Ex1\\ex1.ini");


  (2) 读取整数


  UINT GetPrivateProfileInt(


  LPCTSTR lpAppName, // 同上


  LPCTSTR lpKeyName, // 同上


  INT nDefault, // 若指定的键名不存在,该值作为读取的默认值


  LPCTSTR lpFileName // 同上


  )


  如使用以下语句写入了年龄信息:


  ::WritePrivateProfileString("Test","age","25",".\\ex1.ini");


  //在ex1.ini中创建一个Test节,并在该节中创建一个键age,其值为25


  则可用以下语句读取age键的值:


  int age;


  age=::GetPrivateProfileInt("Test","age",0,".\\ex1.ini");


  三、 删除键值或节


  回顾一下WriteProfileString函数的说明


  BOOL WriteProfileString(


  LPCTSTR lpAppName, // 节的名字,是一个以0结束的字符串


  LPCTSTR lpKeyName, // 键的名字,是一个以0结束的字符串。若为NULL,则删除整个节


  LPCTSTR lpString // 键的值,是一个以0结束的字符串。若为NULL,则删除对应的键


  )


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇cpp关于const和函数 下一篇vc对文件夹的操作SHFileOperation..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: