用vc读取ini文件
如果我不知道ini文件某个小节有多少键,要怎么统计出有多少键,键名是什么,值是多少?
GetPrivateProfileSection()这个函数是可以得到小节中所有的键,但是返回的是键名和键值,怎么把它们分开啊。
如果我不知道ini文件某个小节有多少键,要怎么统计出有多少键,键名是什么,值是多少?
GetPrivateProfileSection()这个函数是可以得到小节中所有的键,但是返回的是键名和键值,怎么把它们分开啊。
解决方案 »
- TCP首部长度计算的问题
- 从句柄获取窗口类型
- 突发奇想,请问VC6.0中有没有可以把某个CPP或者h文件隐藏的方法?
- VC7,去掉调试信息
- 用Win32 API如何把指定设备描述表中的位图打印到默认打印机?
- C++语言网络编程
- 我的VC技术网站!!!
- 如何实现Shift+Delete
- 急!急!急!如何实现控件消息的人为的触发?
- 沒有Microsoft Transaction Server Type Library(mtxas.dll)怎麼辦?
- VC如何实现SQL中存放EXCEL文件或WORD文件,最好给些代码~
- 神奇!::PostMessage(pSrvSock->m_hWnd, WM_SOCK_MSG, 0, FD_READ);可以接收消息,但WSAAsyncSelect(ServerSock, pSrvS
分解出
Name=tian
Age=20
Sex=man
难道我要靠等号来区分键名和键值吗?
这个函数会返回一个串,每个Section的名字这间用空格隔开的,你的Section命名时如果中间没有空格就可以
我知道你已经能正确的分别取得这三个东西。
但是这些东西你最终还是得拿来用 例如
if str.find("name")
getitsvalue.
假如你都不知道有name这个东西存在 你取值有啥用?
还有一个方法可以解决问题 那就是使用xml
可以取得每个element的属性表 或者它的名字和值。
element->attributemap
遍历此表 取得属性名和属性值 随你爱
[fonts]
[extensions]
[mci extensions]
[files]
[Mail]
MAPI=1
[MCI Extensions.BAK]
aif=MPEGVideo
aifc=MPEGVideo
aiff=MPEGVideo
asf=MPEGVideo
asx=MPEGVideo
au=MPEGVideo
m1v=MPEGVideo
楼主是不是要得到绿色部分的内容并区分开?
{
wsprintf(szBuffer, szFmtSection, p);
SendDlgItemMessage(hWinMain, IDC_INI, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)szBuffer);
SendDlgItemMessage(hWinMain, IDC_INI, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)szCrLf);
// 得到该Section下面的所有keys
// 每个key都是以0结尾的字符串,最后整个字符串以0 结尾
GetPrivateProfileSection(p, szBuffer2, sizeof(szBuffer2), szProfileName);
q = szBuffer2; // 指向第一个key
while ( q[0] ) // 循环读取所有的keys
{
SendDlgItemMessage(hWinMain, IDC_INI, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)q);
SendDlgItemMessage(hWinMain, IDC_INI, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)szCrLf);
q += strlen(q) + 1; // 指针移动到下一个key
}
p += strlen(p) + 1; // 指针移动到下一个section
}