谁懂ini配置啊

xiaoyangssdut 2010-07-07 11:43:17
我是大菜鸟 要做一个程序 程序配置文件那块怎么做啊 就是打开程序后读取一个ini文件 把里面的固定的参数显示到程序中 要怎么做啊 能给个详细步骤吗,大哥们?
...全文
108 点赞 收藏 15
写回复
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的值。
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告