关于ini文件遍历每个section下的value的值的问题。 遍历inimfc 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 谢谢,这个 、、是我的错误!我在说一下我的疑惑,怎么才能遍历ini文件中每个section下的value或者key? 有windows api我记不清了,好像是 profile 之类的。 你是既不知道有多少个sesion 也不知道每个sesion下有多少个value?网上看到一个函数 应该管事儿01.void EnumIniFile(LPCTSTR pFilePath) 02.{ 03. // TODO: Add your control notification handler code here 04. TCHAR strAppNameTemp[1024];//所有AppName的返回值 05. TCHAR strKeyNameTemp[1024];//对应每个AppName的所有KeyName的返回值 06. TCHAR strReturnTemp[1024];//返回值 07. DWORD dwKeyNameSize;//对应每个AppName的所有KeyName的总长度 08. //所有AppName的总长度 09. DWORD dwAppNameSize = GetPrivateProfileString(NULL,NULL,NULL,strAppNameTemp,1024,pFilePath); 10. if(dwAppNameSize>0) 11. { 12. TCHAR *pAppName = new TCHAR[dwAppNameSize]; 13. int nAppNameLen=0; //每个AppName的长度 14. for(int i = 0;i<dwAppNameSize;i++) 15. { 16. pAppName[nAppNameLen++]=strAppNameTemp[i]; 17. if(strAppNameTemp[i]=='/0') 18. { 19. OutputDebugString(pAppName); 20. OutputDebugString(_T("/r/n")); 21. dwKeyNameSize = GetPrivateProfileString(pAppName,NULL,NULL,strKeyNameTemp,1024,_T("test.INI")); 22. if(dwAppNameSize>0) 23. { 24. TCHAR *pKeyName = new TCHAR[dwKeyNameSize]; 25. int nKeyNameLen=0; //每个KeyName的长度 26. for(int j = 0;j<dwKeyNameSize;j++) 27. { 28. 29. pKeyName[nKeyNameLen++]=strKeyNameTemp[j]; 30. if(strKeyNameTemp[j]=='/0') 31. { 32. OutputDebugString(pKeyName); 33. OutputDebugString(_T("=")); 34. if(GetPrivateProfileString(pAppName,pKeyName,NULL,strReturnTemp,1024,pFilePath)) 35. OutputDebugString(strReturnTemp); 36. memset(pKeyName,0,dwKeyNameSize); 37. nKeyNameLen=0; 38. OutputDebugString(_T("/r/n")); 39. } 40. } 41. delete[]pKeyName; 42. 43. } 44. memset(pAppName,0,dwAppNameSize); 45. nAppNameLen=0; 46. } 47. } 48. delete[]pAppName; 49. } 50.} 如何输出结果集 大部分人都没有研究过的一个重要问题.请一起讨论 打印机监控 小弟急用!!!!!!VC++高手请进.............. 请教FindWindow失败的问题 打印预览为何时好时坏???? DWORD怎么转化为CString 菜鸟问题,送分啦!!有帮助就给分 为什么自绘控件接收不到WM_MEASUREITEM消息? 请问怎么给这个变量赋值为空值? IOCP UDP 问题求解? 为什么 LPTSTR p = s.GetBuffer( 0 ),之后p="新内容"后,s的内容却没有发生变化?
网上看到一个函数 应该管事儿
01.void EnumIniFile(LPCTSTR pFilePath)
02.{
03. // TODO: Add your control notification handler code here
04. TCHAR strAppNameTemp[1024];//所有AppName的返回值
05. TCHAR strKeyNameTemp[1024];//对应每个AppName的所有KeyName的返回值
06. TCHAR strReturnTemp[1024];//返回值
07. DWORD dwKeyNameSize;//对应每个AppName的所有KeyName的总长度
08. //所有AppName的总长度
09. DWORD dwAppNameSize = GetPrivateProfileString(NULL,NULL,NULL,strAppNameTemp,1024,pFilePath);
10. if(dwAppNameSize>0)
11. {
12. TCHAR *pAppName = new TCHAR[dwAppNameSize];
13. int nAppNameLen=0; //每个AppName的长度
14. for(int i = 0;i<dwAppNameSize;i++)
15. {
16. pAppName[nAppNameLen++]=strAppNameTemp[i];
17. if(strAppNameTemp[i]=='/0')
18. {
19. OutputDebugString(pAppName);
20. OutputDebugString(_T("/r/n"));
21. dwKeyNameSize = GetPrivateProfileString(pAppName,NULL,NULL,strKeyNameTemp,1024,_T("test.INI"));
22. if(dwAppNameSize>0)
23. {
24. TCHAR *pKeyName = new TCHAR[dwKeyNameSize];
25. int nKeyNameLen=0; //每个KeyName的长度
26. for(int j = 0;j<dwKeyNameSize;j++)
27. {
28.
29. pKeyName[nKeyNameLen++]=strKeyNameTemp[j];
30. if(strKeyNameTemp[j]=='/0')
31. {
32. OutputDebugString(pKeyName);
33. OutputDebugString(_T("="));
34. if(GetPrivateProfileString(pAppName,pKeyName,NULL,strReturnTemp,1024,pFilePath))
35. OutputDebugString(strReturnTemp);
36. memset(pKeyName,0,dwKeyNameSize);
37. nKeyNameLen=0;
38. OutputDebugString(_T("/r/n"));
39. }
40. }
41. delete[]pKeyName;
42.
43. }
44. memset(pAppName,0,dwAppNameSize);
45. nAppNameLen=0;
46. }
47. }
48. delete[]pAppName;
49. }
50.}