的Qt4 QSettings读取多个值
问题描述:
阵列我有这种形式的.ini文件:的Qt4 QSettings读取多个值
#init file:
[files]
fileAmount=2
file1=string1, string2, 0
file2=string1, string2, 1
//cpp file:
settings=new QSettings(QString(":resources/configuration"), QSettings::IniFormat);
int n=set("files/fileAmount").toInt();
for(int i=1; i<=n; i++){
QStringList list=settings->value("files/file"+QString::number(i)).toStringList();
out<<list[0]<<" "<<list[1]<<" "<<list[2]<<endl;
}
//output:
string1 string2 0
string1 string2 1
有什么办法来设置空格作为分隔符QStringList中,而不是KOMMA?
即有此文件:
#init file:
[files]
fileAmount=2
file1=string1 string2 0
file2=string1 string2 1
,并得到相同的输出?
答
Ini文件:
C:\ Users \用户名\ AppData \漫游\ MYORG \在ini文件中的空间分隔的StringList MYAPP.INI
[files]
file1=string1 string2 0
示例代码:
#include <QCoreApplication>
#include <QStringList>
#include <QSettings>
#include <QDebug>
void readSettings();
void writeSettings();
QStringList list;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSettings::setDefaultFormat(QSettings::IniFormat);
qApp->setApplicationName("MyApp");
qApp->setOrganizationName("MyOrg");
readSettings();
qDebug() << list;
writeSettings();
return a.exec();
}
void readSettings()
{
// read a space delimited value from QSettings string
// into a stringlist
QSettings s;
s.beginGroup("files");
QString temp = s.value("file1","string1 string2 0").toString();
list << temp.split(" ");
s.endGroup();
}
void writeSettings()
{
// write a space delimited value from QStringList
QSettings s;
s.beginGroup("files");
s.setValue("file1",list.join(" "));
s.endGroup();
}
输出:
("string1", "string2", "0")
希望有所帮助。
请显示一些代码,你已经尝试过。 –
以及如果** string1 **或** string2 **里面有**空格**会怎么样? – Redanium