项目中需要用到ini文件,并且节是逐个递增的(节形式:History1、History2)。处理方式为获取到childGroups(),然后取最后一个,再对其进行++
下面展示一些 内联代码片
。
//获取最新记录编号
QStringList listAllKeys = m_pHistorySettings->childGroups();
int iID = 0;
if(listAllKeys.count() > 0)
{
QStringList strList = listAllKeys.last().split("History"); //获取最新记录的编号
if(strList.count() == 2)
iID = strList.at(1).toInt();
}
iID++;
但是使用过程中发现,iID到达10后,就无法递增了。调试后,发现listAllKeys并不是按写入文件中的顺序返回的。最终处理方案,对listAllKeys进行排序即可。
下面展示一些 内联代码片
。
//对键进行排序,默认返回为无序
std::sort(listAllKeys.begin(), listAllKeys.end(), [](const QString& s1, const QString& s2)
{
return s1.split("History").at(1).toInt()<s2.split("History").at(1).toInt();
});