在文本文件的某些行和列上插入值

  • 本文关键字:插入 文本 文件 c++ qt qt5
  • 更新时间 :
  • 英文 :


我想在我的大文本文件的第 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;

相关内容

  • 没有找到相关文章

最新更新