我file.txt
的数据如下:
Student_ID=0001
Student_Name=joseph
Student_GradeLevel=2
我如何获得价值,假设我想使用Qt获得Student_ID
。
感谢。
答案 0 :(得分:1)
看看这个功能,它可用于在输入文件中找到您想要的任何值,其中所有行都采用您在上面发布的格式({{1 }})。如果未找到密钥,则返回空的key=value
对象。
QString()
现在你把它称之为某个地方,例如:
QString findValueInFile(QString key, QString filename) {
QFile file(filename);
if(file.open(QIODevice::ReadOnly)) {
QTextStream txtStr(&file);
QStringList fileContent = txtStr.readAll().split('\n');
for(auto &&line : fileContent) {
if(line.contains(key)) return line.split(QChar('='))[1];
}
file.close();
}
return QString(); // not found
}
如果您将qDebug() << findValueInFile("Student_ID", "file.txt");
qDebug() << findValueInFile("Student_Name", "file.txt");
符号替换为其他分隔符,则可以轻松修改此功能,例如=
或者其他。但是对于=>
格式,有一个特殊的key=value
类(由 sebastian 提及),可以让您更轻松地读取这些值:
QSettings
答案 1 :(得分:0)
您也可以使用QSettings
,因为它们可以读取ini文件。
虽然关于反斜杠可能对你很重要,但有一些警告(尽管它们不适用于你发布的例子):http://doc.qt.io/qt-4.8/qsettings.html#Format-enum
QSettings iniFile("myfile.txt", QSettings::IniFormat);
// now get the values by their key
auto studentId = iniFile.value("Student_ID").toString().toInt();
我更多的是PyQt
用户,所以:如果我的某些C ++细节错误就道歉......