Qt löschen einer Zeile aus der Datei
Ich lese ein QFile mit QTextStream.
QFile file("example.txt");
QTextStream in(&file);
QString line = in.readLine();
while (!line.isNull()) {
if(line.contains("DELETE"))
{
//delete line
}
line = in.readLine();
}
Gibt es eine Möglichkeit, um eine Zeile zu löschen ?
- Einfachste Möglichkeit ist eine neue Datei erstellen und zum schreiben notwendig Saiten gibt.
- Abschneiden ? Was über Inhalt der Datei ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Datei öffnen, den Inhalt Lesen, den Inhalt ändern, und dann schreiben Sie Sie zurück in die Datei. Hier ist ein Weg, um dies zu tun:
Soweit ich weiß, ist es nicht so einfach ist. Die beste Lösung, die ich denken kann, ist das Lesen der gesamten Datei line-by-line, push-jede Zeile in einem QVector, dann ändern Sie die container-Elemente, wie Sie wollen, dann schieben Sie es zurück in die Datei.
löschen einer Zeile bedeutet die Verschiebung aller den rest rückwärts.
einfachste Weg ist, um zurück zu schreiben-Linien im neuen Platz nach der ersten Löschung.
Mithilfe der temp-Datei, und benennen Sie die original-wenn Erfolg, ist der sicherste Weg.
aber Sie nie mehr schreiben, dann liest du, also ist es wohl OK sein, um an derselben Datei arbeiten.
müssen Sie zu halten, Lesen Sie pos und schreiben pos.
es sollte so etwas wie dieses: (basierend auf den original-code)