谁懂ini配置啊

xiaoyangssdut 2010-07-07 11:43:17
我是大菜鸟 要做一个程序 程序配置文件那块怎么做啊 就是打开程序后读取一个ini文件 把里面的固定的参数显示到程序中 要怎么做啊 能给个详细步骤吗,大哥们?
...全文
131 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
scq2099yt 2010-07-14
  • 打赏
  • 举报
回复
ini文件的编程参见下面文章:
http://www.joyvc.cn/OtherTechnical/OtherTechnical00068.html
http://www.joyvc.cn/OtherTechnical/OtherTechnical00066.html
adamwyb 2010-07-07
  • 打赏
  • 举报
回复
原理就是读取文件,然后对字符串进行处理,如果你想读取一些有个性的ini文件,还是自己定义比较好。
Eleven 2010-07-07
  • 打赏
  • 举报
回复
MSDN找GetPrivateProfile...开头的函数
xmzzy 2010-07-07
  • 打赏
  • 举报
回复
WritePrivateProfileString

等相关函数了解下
InitialJ 2010-07-07
  • 打赏
  • 举报
回复
GetPrivateProfileInt
梧桐126 2010-07-07
  • 打赏
  • 举报
回复
可以,不过得把路径传进去,绝对路径就不用了!
xiaoyangssdut 2010-07-07
  • 打赏
  • 举报
回复
请问这个写成一个动态链接库 调用可以吗
jastdoit 2010-07-07
  • 打赏
  • 举报
回复
如果读取的是数字就用GetPrivateProfileInt()
如果读取的是字符串就用GetPrivateProfileString()
eg:
[System]
ip=10.0.0.0
GetPrivateProfileString("System","IP","",变量,20,"路径");
fanxing425 2010-07-07
  • 打赏
  • 举报
回复
给你个例子,用获得字符串对应的内容的函数:
配置文件如下样子:
建立个文本文件,命名成.ini,将如下内容Copy进去。


[Setting]
Language=简体中文



[String]
IDS_MENU_FILE=文件
IDS_FILE_LOGIN=登陆(&I)
IDS_FILE_LOGOUT=注销(&O)
IDS_MENU_EXIT=退出


IDS_MENU_DATA=数据
IDS_MENU_READ_SPT=读警棍数据
IDS_DATA_PATROL_PERSON=巡逻人员信息
IDS_DATA_ADDRESS=地址信息
IDS_DATA_ACCIDENT=事故信息
IDS_DATA_PLAN=计划信息


在程序中增加如下函数,注意将g_szLanguagePath
初始化成自己的程序所在路径及:如: C:\\my Program\\Debug\\文件名.ini,
参数szID 为ini文件中"="前面的字符串
CString g_LoadString(CString szID)
{
CString szValue;
DWORD dwSize = 1000;
GetPrivateProfileString("String",szID,"Not Found",
szValue.GetBuffer(dwSize),dwSize,g_szLanguagePath);
szValue.ReleaseBuffer();
szValue.Replace("\\n","\n"); //替换回换行符号

return szValue;
}

如上,假如g_LoadString("IDS_MENU_DATA") 调用则返回"数据"字符串,如果要写入ini文件,用WritePrivateProfileString()
fanxing425 2010-07-07
  • 打赏
  • 举报
回复
给你个例子,用配置文件对应字符串设置对话框控件的Caption的例子:
配置文件如下样子:
建立个文本文件,命名成.ini,将如下内容Copy进去。


[Setting]
Language=简体中文



[String]
IDS_MENU_FILE=文件
IDS_FILE_LOGIN=登陆(&I)
IDS_FILE_LOGOUT=注销(&O)
IDS_MENU_EXIT=退出


IDS_MENU_DATA=数据
IDS_MENU_READ_SPT=读警棍数据
IDS_DATA_PATROL_PERSON=巡逻人员信息
IDS_DATA_ADDRESS=地址信息
IDS_DATA_ACCIDENT=事故信息
IDS_DATA_PLAN=计划信息


在程序中增加如下函数,注意将g_szLanguagePath
初始化成自己的程序所在路径及:如: C:\\my Program\\Debug\\文件名.ini,
参数szID 为ini文件中"="前面的字符串
CString g_LoadString(CString szID)
{
CString szValue;
DWORD dwSize = 1000;
GetPrivateProfileString("String",szID,"Not Found",
szValue.GetBuffer(dwSize),dwSize,g_szLanguagePath);
szValue.ReleaseBuffer();
szValue.Replace("\\n","\n"); //替换回换行符号

return szValue;
}

如上,假如g_LoadString("IDS_MENU_DATA") 调用则返回"数据"字符串,如果要写入ini文件,用WritePrivateProfileString()
goalcn 2010-07-07
  • 打赏
  • 举报
回复
其实就是读写文件
不用系统函数自己写都可以
xiaoyangssdut 2010-07-07
  • 打赏
  • 举报
回复
非常感谢大家 谢谢大家热情的回答 鞠躬!
lyl0625 2010-07-07
  • 打赏
  • 举报
回复
哦,对不起,上面有个写错了。
应该是CString strIniPath = _T("C:\\Documents and Settings\\test.ini");
lyl0625 2010-07-07
  • 打赏
  • 举报
回复
哦,对不起,上面有个写错了。
应该是CString strIniPath = _T("C:\\Documents and Settings\\test.ini");
lyl0625 2010-07-07
  • 打赏
  • 举报
回复
比如你新建了一个ini文件,如test.ini
在ini文件中设置
然后你在代码中添加如下语句:

CString strIniPath = _T("C:\Documents and Settings\test.ini");

int iCount = GetPrivateProfileInt("TEST_PARAMETER", "ITEMCount", 0, strIniPath);

这样就获取了test.ini中的ITEMCount的值。

16,547

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧