VC 做个修改 配置文件的 软件

求VC高手帮忙下,谢谢做一个修改.INI配置文件的界面,要能实现.INI里面参数的修改,修改内容,5个!比如:XXXX=1111YY=2222ZZ=3333...在界面上... 求VC 高手帮忙下,谢谢
做一个 修改 .INI
配置文件的界面,要能实现.INI 里面参数的修改,修改内容 ,5个!
比如:XXXX=1111
YY=2222
ZZ=3333...
在界面上能修改他们就好了,谢谢...
展开
 我来答
皇家救星1985
2008-05-27 · TA获得超过1131个赞
知道大有可为答主
回答量:1579
采纳率:0%
帮助的人:1661万
展开全部
看看下面的,对这两个函数应该够详细了吧:

我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下:

一.将信息写入.INI文件中.

1.所用的WINAPI函数原型为:

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

其中各参数的意义:

LPCTSTR lpAppName 是INI文件中的一个字段名.

LPCTSTR lpKeyName 是lpAppName下的一个键名,通俗讲就是变量名.

LPCTSTR lpString 是键值,也就是变量的值,不过必须为LPCTSTR型或CString型的.

LPCTSTR lpFileName 是完整的INI文件名.

2.具体使用方法:设现有一名学生,需把他的姓名和年龄写入 c:\stud\student.ini 文件中.

CString strName,strTemp;
int nAge;
strName="张三";
nAge=12;
::WritePrivateProfileString("StudentInfo","Name",strName,"c:\\stud\\student.ini");

此时c:\stud\student.ini文件中的内容如下:

[StudentInfo]
Name=张三

3.要将学生的年龄保存下来,只需将整型的值变为字符型即可:

strTemp.Format("%d",nAge);
::WritePrivateProfileString("StudentInfo","Age",strTemp,"c:\\stud\\student.ini");
二.将信息从INI文件中读入程序中的变量.

1.所用的WINAPI函数原型为:

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

其中各参数的意义:

前二个参数与 WritePrivateProfileString中的意义一样.

lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.

lpReturnedString : 接收INI文件中的值的CString对象,即目的缓存器.

nSize : 目的缓存器的大小.

lpFileName : 是完整的INI文件名.

2.具体使用方法:现要将上一步中写入的学生的信息读入程序中.

CString strStudName;
int nStudAge;
GetPrivateProfileString("StudentInfo","Name","默认姓名",strStudName.GetBuffer(MAX_PATH),MAX_PATH,"c:\\stud\\student.ini");

执行后 strStudName 的值为:"张三",若前两个参数有误,其值为:"默认姓名".

3.读入整型值要用另一个WINAPI函数:

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

这里的参数意义与上相同.使用方法如下:

nStudAge=GetPrivateProfileInt("StudentInfo","Age",10,"c:\\stud\\student.ini");
三.循环写入多个值,设现有一程序,要将最近使用的几个文件名保存下来,具体程序如下:

1.写入:

CString strTemp,strTempA;
int i;
int nCount=6;
file://共有6个文件名需要保存
for(i=0;i {strTemp.Format("%d",i);
strTempA=文件名;
file://文件名可以从数组,列表框等处取得.
::WritePrivateProfileString("UseFileName","FileName"+strTemp,strTempA,
"c:\\usefile\\usefile.ini");
}
strTemp.Format("%d",nCount);
::WritePrivateProfileString("FileCount","Count",strTemp,"c:\\usefile\\usefile.ini");
file://将文件总数写入,以便读出.

2.读出:

nCount=::GetPrivateProfileInt("FileCount","Count",0,"c:\\usefile\\usefile.ini");
for(i=0;i {strTemp.Format("%d",i);
strTemp="FileName"+strTemp;
::GetPrivateProfileString("CurrentIni",strTemp,"default.fil", strTempA.GetBuffer(MAX_PATH),MAX_PATH,"c:\\usefile\\usefile.ini");

file://使用strTempA中的内容.

}

补充四点:

1.INI文件的路径必须完整,文件名前面的各级目录必须存在,否则写入不成功,该函数返回 FALSE 值.

2.文件名的路径中必须为 \\ ,因为在VC++中, \\ 才表示一个 \ .

3.也可将INI文件放在程序所在目录,此时 lpFileName 参数为: ".\\student.ini".

4.从网页中粘贴源代码时,最好先粘贴至记事本中,再往VC中粘贴,否则易造成编译错误,

参考资料: 转的,百度一下就能找到

AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
用的人还挺多呢
2008-05-27 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:123万
展开全部
GetPrivateProfileInt Retrieves an integer associated with a key in the specified section of an initialization file.
GetPrivateProfileSection Retrieves all the keys and values for the specified section of an initialization file.
GetPrivateProfileSectionNames Retrieves the names of all sections in an initialization file.
GetPrivateProfileString Retrieves a string from the specified section in an initialization file.
GetPrivateProfileStruct Retrieves the data associated with a key in the specified section of an initialization file.
GetProfileInt Retrieves an integer from a key in the specified section of the Win.ini file.
GetProfileSection Retrieves all the keys and values for the specified section of the Win.ini file.
GetProfileString Retrieves the string associated with a key in the specified section of the Win.ini file.
WritePrivateProfileSection Replaces the keys and values for the specified section in an initialization file.
WritePrivateProfileString Copies a string into the specified section of an initialization file.
WritePrivateProfileStruct Copies data into a key in the specified section of an initialization file.
WriteProfileSection Replaces the contents of the specified section in the Win.ini file with specified keys and values.
WriteProfileString Copies a string into the specified section of the Win.ini file.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风轻云度
2008-05-27 · TA获得超过1423个赞
知道大有可为答主
回答量:1835
采纳率:0%
帮助的人:0
展开全部
UINT WINAPI GetPrivateProfileInt(
__in LPCTSTR lpAppName, // 这个是随便写,段落标记
__in LPCTSTR lpKeyName, // 键如XXXX,YY
__in INT nDefault, // 值,如111,222
__in LPCTSTR lpFileName // ini路径名
);

BOOL WriteProfileInt(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
int nValue
);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
stone_dongdong
2008-06-02 · TA获得超过2853个赞
知道大有可为答主
回答量:1636
采纳率:0%
帮助的人:1015万
展开全部
VS对INI文件读取的支持不好,几个API函数使用起来均很繁琐。还不如自己写,定义一个字符串缓冲区,(直接使用CString 更方便),然后根据'\r\n'字符来判断新行,根据'='来判断ID和VALUE。将这些数据读入到一个结构链表中去,
使用一个CListCtrl控件来实现在窗口编辑。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式