我想在我的大文本文件的第 14 行和第 19 列插入双旋转框的值。我已经创建了循环以在第 14 行插入值,但它只是放在该行的第一列。谁能帮我移动文本后的值,参数PW_x = ?
这是我的文本文件的一部分。
parameter PW_x = "i want to insert value here this is 14th line and 19th column"
parameter PW_y =
parameter PD =
parameter PC =
这是我的代码
void MainWindow::on_doubleSpinBox_6_editingFinished()
{
QString file("D:\my text file name");
QFile outputFile(file);
if (outputFile.open(QIODevice::ReadWrite | QIODevice::Text))
{
for (int i=0;i<13;i++) {
outputFile.readLine();
}
QTextStream stream(&outputFile);
stream << QString::number(ui->doubleSpinBox_6->value());
}
}
正如我在评论中建议的那样,您应该解析->编辑->保存
您肯定可以使用其他方式在文件中插入值,例如尝试匹配和替换文件每一行中的字符串(请注意,这是非常低效的..(,但这里有一个例子:
在 for 循环中,尝试将字符串"PW_x = "替换为值 PW_x = '您的旋转框双精度',替换操作将保留所有与您正在寻找的字符串不匹配的行......
这里有一个例子
QString l1{"parameter PW_x = " };
QString l2{"parameter PW_y = " };
QString l3{"parameter PD = " };
QString l4{"parameter PC = " };
QString doubleAsString{"3.1415"};
l1.replace("PW_x = ", "PW_x = " + doubleAsString);
l2.replace("PW_x = ", "PW_x = " + doubleAsString);
l3.replace("PW_x = ", "PW_x = " + doubleAsString);
l4.replace("PW_x = ", "PW_x = " + doubleAsString);
qDebug() << "v1: " << l1;
qDebug() << "v2: " << l2;
qDebug() << "v3: " << l3;
qDebug() << "v4: " << l4;