每个软件多多少少都会存在一些自己的参数,需要依靠配置文件对软件进行后台改动,当参数数量不是很多的时候解析不是很困难,但是如果参数数量比较多的时候在解析的时候会比较麻烦的。
.ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了。但在某些情况,还是要直接编辑ini才方便。所以我们参数配置文件使用的是ini文件
整体的思路是将ini配置文件使用QFile读入,然后按照我们写的固定格式进行解析放入到ini文件中。
下边是我们ini文件的格式。使用[]设置类别,具体参数使用等号进行赋值。
[parameter]
Length = 1
Width = 2
Weight = 3
Volume = 4
下边我们对上边参数文件进行解析,对文件进行一行一行读取,判断该行等式中存在等号我们就使用QMap对变量名称与数值进行存储
QMap<Key,T>是Qt容器类型的一种,它通过(Key, value)存储一对值,并通过Key可以查找与之关联的value的值。
QMap<QString, QString> params;
void ReadIni::ReadFromIni(QString fileName)
{
QFile file(fileName);
file.open(QIODevice::ReadOnly);
while(!file.atEnd())
{
QString line = file.readLine();
if(!line.contains("="))
continue;
int eqindex = line.indexOf("=");
QString key = line.left(eqindex - 1);
QString value = line.mid(eqindex + 2, line.length() - eqindex -4);
params.insert(key,value);
}
}
当上边的操作执行操作结束以后就可以利用QMap
对数值进行查询复制。比如说我们想获取配置文件中的长度数值,我们就可以进行。
float Length = track->Ra = readini->params["Length "].toFloat();
这样就可以利用键值查询将相应的字符串读出来再转换为我们想要的格式。