VC中读写ini配置文件Word文件下载.docx

上传人:b****1 文档编号:4409108 上传时间:2023-05-03 格式:DOCX 页数:8 大小:17.39KB
下载 相关 举报
VC中读写ini配置文件Word文件下载.docx_第1页
第1页 / 共8页
VC中读写ini配置文件Word文件下载.docx_第2页
第2页 / 共8页
VC中读写ini配置文件Word文件下载.docx_第3页
第3页 / 共8页
VC中读写ini配置文件Word文件下载.docx_第4页
第4页 / 共8页
VC中读写ini配置文件Word文件下载.docx_第5页
第5页 / 共8页
VC中读写ini配置文件Word文件下载.docx_第6页
第6页 / 共8页
VC中读写ini配置文件Word文件下载.docx_第7页
第7页 / 共8页
VC中读写ini配置文件Word文件下载.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VC中读写ini配置文件Word文件下载.docx

《VC中读写ini配置文件Word文件下载.docx》由会员分享,可在线阅读,更多相关《VC中读写ini配置文件Word文件下载.docx(8页珍藏版)》请在冰点文库上搜索。

VC中读写ini配置文件Word文件下载.docx

//要写入的文件的文件名。

若该ini文件与程序在同一个目录下,也可使用相对

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

如:

:

WriteProfileString("

Test"

"

id"

xym"

);

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

WritePrivateProfileString("

d:

//vc//Ex1//ex1.ini"

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

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

.//ex1.ini"

需要注意的是,C系列的语言中,转义字符'

//'

表示反斜线'

/'

另外,当使用相对路径时,//前的.号不能丢掉了。

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

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

(1)读取字符串

DWORDGetProfileString(

//节名

//键名,读取该键的值

LPCTSTRlpDefault, 

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

LPTSTRlpReturnedString, 

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

DWORDnSize 

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

CStringstr;

GetProfileString("

Error"

str.GetBuffer(20),20);

(2)读取整数

UINTGetProfileInt(

INTnDefault 

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

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

age"

25"

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

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

intage;

age=:

GetProfileInt("

0);

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

DWORDGetPrivateProfileString(

//同1

(1)

DWORDnSize, 

//读取信息的文件名。

若该ini文件与程序在同一个目录下,也可使用相 

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

GetPrivateProfileString("

str.GetBuffer(20),20,"

或:

UINTGetPrivateProfileInt(

INTnDefault, 

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

GetPrivateProfileInt("

0,"

三、删除键值或节

回顾一下WriteProfileString函数的说明

由此可见,要删除某个节,只需要将WriteProfileString第二个参数设为NULL即可。

而要删除某个键,则只需要将该函数的第三个参数设为NULL即可。

这是删除系统的win.ini中的节或键,类似的,要删除自己定义的ini文件中的节或键,也可做相同的操作。

如:

NULL,NULL);

//删除win.ini中的Test节

NULL);

//删除win.ini中的id键

NULL,NULL,"

//删除ex1.ini中的Test节

NULL,"

//删除ex1.ini中的id键

四、如何判断一个ini文件中有多少个节

要判断一个ini文件中有多少个节,最简单的办法就是将所有的节名都找出来,然后统计节名的个数。

而要将所有的节名找出来,使用GetPrivateProfileSectionNames函数就可以了,其原型如下:

DWORDGetPrivateProfileSectionNames(

LPTSTRlpszReturnBuffer, 

//指向一个缓冲区,用来保存返回的所有节名

//参数lpszReturnBuffer的大小

//文件名,若该ini文件与程序在同一个目录下,

//也可使用相对路径,否则需要给出绝度路径

下面的是用来统计一个ini文件中共有多少个节的函数,当然,如果需要同时找到每个节中的各个键及其值,根据找到节名就可以很容易的得到了。

/*统计共有多少个节

节名的分离方法:

若chSectionNames数组的第一字符是'

/0'

字符,则表明

有0个节。

否则,从chSectionNames数组的第一个字符开始,顺序往后找,

直到找到一个'

字符,若该字符的后继字符不是'

字符,则表明前

面的字符组成一个节名。

若连续找到两个'

字符,则统计结束*/

intCTestDlg:

CalcCount(void)

{

TCHAR 

chSectionNames[2048]={0};

//所有节名组成的字符数组

char*pSectionName;

//保存找到的某个节名字符串的首地址

inti;

//i指向数组chSectionNames的某个位置,从0开始,顺序后移

intj=0;

//j用来保存下一个节名字符串的首地址相对于当前i的位置偏移量

intcount=0;

//统计节的个数

//CStringname;

//charid[20];

GetPrivateProfileSectionNames(chSectionNames,2048,"

for(i=0;

i<

2048;

i++,j++)

if(chSectionNames[0]=='

break;

//如果第一个字符就是0,则说明ini中一个节也没有

if(chSectionNames[i]=='

{

pSectionName=&

chSectionNames[i-j];

//找到一个0,则说明从这个字符往前,减掉j个偏移量,

//就是一个节名的首地址

j=-1;

//找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量

//赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名

//的一部分

/*:

GetPrivateProfileString(pSectionName,"

id,20,"

name.Format("

%s"

id);

*/ 

//在获取节名的时候可以获取该节中键的值,前提是我们知道该节中有哪些键。

AfxMessageBox(pSectionName);

//把找到的显示出来

if(chSectionNames[i+1]==0)

//当两个相邻的字符都是0时,则所有的节名都已找到,循环终止

}

}

returncount;

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////

在VC程序中利用系统提供的GetPrivateProfileString及WritePrivateProfileString函数直接读写系统配置ini文件(指定目录下的Ini文件)

假设在当前目录下有一个文件名为Tets.ini的文件

用于保存用户名和密码

文件格式如下:

[Section1]

Item1=huzhifeng

Item2=1234565

1.写INI文件

void 

CINI_File_TestDlg:

OnButtonWrite() 

// 

TODO:

Add 

your 

control 

notification 

handler 

code 

here

CString 

strSection 

"

Section1"

;

strSectionKey 

Item1"

char 

strBuff[256];

strValue 

_T("

strFilePath;

strFilePath=GetCurrentDirectory(256,strBuff);

//获取当前路径

strFilePath.Format("

%s//Test.ini"

strBuff);

GetDlgItemText(IDC_EDIT_NAME,strValue);

//获取文本框内容:

即姓名

WritePrivateProfileString(strSection,strSectionKey,strValue,strFilePath);

//写入ini文件中相应字段

strSectionKey="

Item2"

GetDlgItemText(IDC_EDIT_PASSWORD,strValue);

即密码

2.读INI文件内容

OnButtonRead() 

GetPrivateProfileString(strSection,strSectionKey,NULL,strBuff,80,strFilePath);

//读取ini文件中相应字段的内容

strValue=strBuff;

SetDlgItemText(IDC_EDIT_NAME,strValue);

SetDlgItemText(IDC_EDIT_PASSWORD,strValue);

UpdateData(FALSE);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2