Qt写配置文件需要用到QSettings,我要写入的键值是带有逗号的字符串,如下:
[data]
value=A, result, 0, 0, 0
按照例程敲了代码,如下
QSettings cfgFile(fileName, QSettings::IniFormat);
cfgFile.setIniCodec(QTextCodec::codecForName("UTF-8"));
cfgFile.setValue("data/value",QString("A, result, 0, 0, 0"));
结果配置文件中多了双引号,不是期望的结果
[data]
value="A, result, 0, 0, 0"
经过一顿资料的查找,使用 QStringList类型的变量可以达到预期,关键时加入变量时不要添加逗号join起来,编译器会将逗号自动添加到ini配置文件,自己不需要加入字符串中!!!
正确的写入方式
QStringList keyV;
keyV<<"A"<<"result"<<"0"<<"0"<<"0"; // 不需要加入逗号
QSettings cfgFile(fileName, QSettings::IniFormat);
cfgFile.setIniCodec(QTextCodec::codecForName("UTF-8"));
cfgFile.setValue("data/value",keyV);
最后的配置文件没有了不需要的双引号,自动加了逗号。
[data]
value=A, result, 0, 0, 0