在VC中对INI的操作函数很少,为了能够达到遍历INI的目的,有很多人选择用CFile来重新解析INI以达到遍历的目的,但是这样做真的很麻烦,这里我研究了半天终于找到一种用既给的函数达到遍历INI的目的。

直接上代码:

void GetWholeINI()
{CString g_UnitName[100]; //全局变量:探头名称CString g_UnitID[100]; //全局变量:探头编号CStringArray g_Section;//全局变量;分割好的sectionint counts=0;int g_UnitNumber=0;   //全局变量:探头总数char strBuffer[48];   //临时缓冲区,用于接收字符串int saveHead=0;//获取第一个节点名DWORD nChar;GetSections(g_Section);for(int i=0;i<g_Section.GetSize();i++){while(1){//保存探头标识nChar = GetPrivateProfileString(g_Section.GetAt(i),NULL,"",strBuffer,sizeof(strBuffer),iniClientFullPath);g_UnitID[g_UnitNumber] = strBuffer;//保存探头名称nChar = GetPrivateProfileString(g_Section.GetAt(i),g_UnitID[g_UnitNumber],"",strBuffer,sizeof(strBuffer),iniClientFullPath);g_UnitName[g_UnitNumber] = strBuffer;if(counts==0){m_hostList.InsertItem(i,g_UnitName[g_UnitNumber]);}else{m_hostList.SetItemText(i,counts,g_UnitName[g_UnitNumber]);}if(nChar==0){break;}//将此探头从配置文件中删除WritePrivateProfileString(g_Section.GetAt(i),g_UnitID[g_UnitNumber],NULL,iniClientFullPath);//保存探头个数//读不到信息,表示已经遍历整个INI文件,则退出循环g_UnitNumber ++;counts++;}//将探头信息重新写入配置文件for(int j = saveHead; j < g_UnitNumber; j++){WritePrivateProfileString(g_Section.GetAt(i),g_UnitID[j],g_UnitName[j],iniClientFullPath);}saveHead=g_UnitNumber;counts=0;}
}
//分割section
int GetSections(CStringArray &arrSection)
{  int iLength=0;int   iPos=0;   TCHAR   chSectionNames[2048]={0};   //总的提出来的字符串 TCHAR   chSection[12]={0};   //存放一个段名。 DWORD nChar=GetPrivateProfileSectionNames(chSectionNames,sizeof(chSectionNames),iniClientFullPath); //以下循环,截断到两个连续的0 for(int i=0;i<nChar;i++) { if(chSectionNames[i]==0){arrSection.Add(chSection); if   (chSectionNames[i]==chSectionNames[i+1]){break; }memset(chSection,0,iLength); iPos=0; iLength=0;}else{chSection[iPos++]=chSectionNames[i]; iLength++;}} return   (int)arrSection.GetSize();
}

缓冲区的大小可以根据自己项目中的实际情况来定。

希望能够帮到大家。

VC遍历INI配置文件相关推荐

  1. 【Python教程】读写ini配置文件的详细操作

    ini文件即Initialization File初始化文件,在应用程序及框架中常作为配置文件使用,是一种静态纯文本文件,使用记事本即可编辑. 配置文件的主要功能就是存储一批变量和变量值,在ini文件 ...

  2. python读取配置文件 分段_Python3读写ini配置文件的示例

    ini文件即Initialization File初始化文件,在应用程序及框架中常作为配置文件使用,是一种静态纯文本文件,使用记事本即可编辑. 配置文件的主要功能就是存储一批变量和变量值,在ini文件 ...

  3. python-configparser生成ini配置文件

    写入配置: 创建文件:configTest.ini import configparserconfig = configparser.ConfigParser() config['DEFAULT'] ...

  4. C/C++ ini配置文件的格式及如何读写ini配置文件

    一.ini配置文件的格式 为什么要用INI文件?如果我们程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序 ...

  5. java读取、写入保存、遍历ini文件配置数据

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java读取ini配置文件,将数据写入ini文件,遍历ini文件 需要引入org.dtools.javaini包,下载 测试代码 public s ...

  6. QT当中的【QSetting和.ini配置文件】以及【创建Resources.qrc】

    QT当中的[QSetting和.ini配置文件]以及[创建Resources.qrc] [1] 创建QT下的.qrc [2]QSetting+.qrc使用 [3]代码实现 main.cpp mainw ...

  7. 安全认证框架Shiro (一)- ini配置文件

    我不是语言的开发者,我只是它的搬运工.每进步一点,5年之后你也是个人物 为什么看网上的例子都喜欢用ini格式文件,为什么不用.propertes或xml. 我们来看看一个ini格式文件text.ini ...

  8. MFC操作ini配置文件

    MFC操作ini配置文件 概述       在程序中经常要用到设置或者其他少量数据的存盘,以便程序在下一次执行的时候可以使用,比如说保存本次程序执行时窗口的位置.大小.一些用户设置的数据等等,在    ...

  9. QT中如何读写ini配置文件

    本文首发于「3D视觉工坊」知识星球. 如图1所示,我们需要在QT界面中实现手动读取参数存放的位置,那么我们该如何做呢? 方法:读取ini格式的配置文件,实现路径的写入与读取. 第一步:界面构造函数中, ...

最新文章

  1. 区块链技术指2.1 区块链技术
  2. Python创建单例模式的5种方法
  3. 误删50节点K8s集群为何3小时才能复原?Spotify揭自家事故幕后经验
  4. 让java的多重继承成为现实!
  5. Spring Batch中面向TaskletStep的处理
  6. MFC、OpenCV初探 —— PictureControl中图片的缩放
  7. OkHttp3用法全解析
  8. 零起点入门系列:如何把一张纸单变成在线表单?
  9. java程序中空一阁_如何使用JFlex、JavaCUP(详细代码模版) by 踏雪赤兔
  10. java script 延时_javascript 延时执行函数
  11. matlab怎么算基金组合收益率,基金组合如何精确计算收益率?——以MWRR和TWRR为例...
  12. [Tyvj1450 GF打Dota]
  13. 如何利用COOC生成动态排名变化利器可识别的数据格式
  14. 可能是最强的Python可视化神器,建议一试
  15. Java金额转换工具类
  16. 一文读懂5G R16标准究竟讲了些什么
  17. k均值算法的优化目标和随机初始化
  18. 题解 CF174A 【Problem About Equation】
  19. 数据工程师面试常见题目汇总
  20. 光盘和U盘安装win7和ubuntu14.04全步骤

热门文章

  1. 【css】纯css实现table表格固定表头,表内容滚动
  2. golang 实现 pdf 转高清晰度 jpeg
  3. 关于 git pull 和 git pull origin develop 的区别
  4. Mac上安装虚拟机搭载window系统
  5. 11个主流AI聊天机器人平台,你绝不能错过!
  6. 01-如何写SCI论文
  7. 如何基于Arduino开发板使用BH1750环境光传感器
  8. JS —— 5、数据交互、跨域
  9. 配置Web.config文件显示错误信息
  10. pdf文档转化为doc文档 (转载)