【读取filePath这个文件中的内容,并打印出来】+【if else 的优化】
读取filePath这个文件中的内容,并打印出来
#include <QFile>
#include <QTextStream>
#include <QDebug>
bool loadData_Current_gear_configuration(const QString& filePath)
{
QFile file(filePath); // 创建 QFile 对象,指向传入的文件路径
// 尝试打开文件,检查文件是否能成功打开
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
qWarning() << "Failed to open file:" << filePath;
return false; // 如果打开失败,返回 false
}
QTextStream in(&file); // 创建 QTextStream 对象,绑定到文件
QString fileContent = in.readAll(); // 读取文件的所有内容
// 打印文件内容
qDebug() << "File content:" << fileContent;
file.close(); // 关闭文件
return true; // 文件成功读取并打印内容后,返回 true
}
if else 的优化
哈希映射!字符串后面也可以跟一个实际的操作!
actionMap[“200pA”] = this { radioBtn200pA->click(); };
bool loadData_Current_gear_configuration(const QString& filePath)
{
QFile file(filePath); // 创建 QFile 对象,指向传入的文件路径
// 尝试打开文件,检查文件是否能成功打开
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
qWarning() << "Failed to open file:" << filePath;
return false; // 如果打开失败,返回 false
}
QTextStream in(&file); // 创建 QTextStream 对象,绑定到文件
QString fileContent = in.readAll(); // 读取文件的所有内容
// 打印文件内容
qDebug() << "File content:" << fileContent;
file.close(); // 关闭文件
//
/*if (fileContent == "200pA") {
radioBtn200pA->click();
return true;
}
else if(fileContent == "2nA"){
radioBtn2nA->click();
return true;
}
else if (fileContent == "20nA") {
radioBtn20nA->click();
return true;
}
else if (fileContent == "200nA") {
radioBtn200nA->click();
return true;
}
else
return false;*/
// 定义一个映射,将字符串映射到对应的操作
QMap<QString, std::function<void()>> actionMap;
actionMap["200pA"] = [this]() { radioBtn200pA->click(); };
actionMap["2nA"] = [this]() { radioBtn2nA->click(); };
actionMap["20nA"] = [this]() { radioBtn20nA->click(); };
actionMap["200nA"] = [this]() { radioBtn200nA->click(); };
// 查找并执行对应的操作
if (actionMap.contains(fileContent)) {
actionMap[fileContent]();
return true;
}
else {
return false;
}
}