【发布时间】:2015-06-26 09:16:58
【问题描述】:
我正在使用 Qt 库,我正在尝试更改文件的内容。我想用 fname 替换存储在 tok2 中的文本。 更新代码:
QFile file(destPath);
if (file.open(QIODevice::ReadWrite | QIODevice::Text))
{
QTextStream stream(&file);
while (!stream.atEnd())
{
QString line = stream.readLine();
QStringList tokenList = line.split("\t");
if ( tokenList.count() == 2 && (tokenList.at(0).endsWith("FILE",Qt::CaseInsensitive)))
{
QString tok1 = tokenList.at(0).trimmed();
QString tok2 = tokenList.at(1).trimmed();
QFileInfo relPath(tok2);
QString fname = relPath.fileName();
QString newLine = tok1.append(" ").append(fname);
QString oldLine = tok1.append(" ").append(tok2);
qDebug() << "Original line: " << oldLine << "New line" << newLine;
QTextStream in(&file);
while (!in.atEnd())
{
QString line = in.readLine();
QString outline = line.replace(QString(oldLine), QString(newLine));
in << outline;
}
}
}
}
}
tok2 的原始内容格式为 ../something/filename.ext,我必须用 filename.ext 替换它,但上面的代码没有用 fname 替换 tok2 的内容,总之我无法在此写入文件。
【问题讨论】:
-
你的问题是?
-
fname 的内容不会复制到文件中。
-
你在哪里写回文件?
-
您的示例没有显示任何尝试写入文件的代码。
-
@user,为什么会这样?
text是QString,它甚至不知道它来自一个文件。