Я использую библиотеку Qt, и я пытаюсь изменить содержимое файла. Я хочу заменить текст, хранящийся в tok2, на fname. Обновленный код:Замена текста в файле на C++ с использованием Qt
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 но выше код не заменяет содержимое tok2 по имя_файлу, в short Я не могу писать в этом файле.
И ваш вопрос? – TheDarkKnight
Содержимое fname не копируется в файл. – wazza
Где вы пишете обратно в файл? – Vikram