Hallo Qtler,
wie kann ich denn die erste Zeile einer Datei löschen? Ich kann mit QFile zwar einigermaßen umgehen, aber weder resize() noch irgendeine andere Funktion erfüllt meine Erwartung.
Liebes Grüßle
Kevin
Erste Zeile einer Datei mit QFile löschen
Sehr witzig. Wenn Du aus einer Datei was entfernst, dann musst Du den Rest neu schreiben. Wenn Du was am Anfang entfernst, dann eben die ganze Datei.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Hallo!
Nur mit QFile würde ich es nicht machen, ich gehe mal davon aus dass du eine Textdatei manipulieren willst, also bietet sich QTextStream an:
Da der Inhalt der Textdatei in einen QString kopiert wird, dürfte die Vorgehensweise nur bei kleineren Textdateien effizient arbeiten...
Nur mit QFile würde ich es nicht machen, ich gehe mal davon aus dass du eine Textdatei manipulieren willst, also bietet sich QTextStream an:
Code: Alles auswählen
[...]
QFile file("in.txt");
if (!file.open(QFile::ReadWrite | QFile::Text)) {
return 1;
}
QTextStream textStream(&file);
// 1. Zeile einlesen, danach ist der Zeiger in der 2. Zeile
textStream.readLine();
// Den Rest der Datei einlesen
QString content = textStream.readAll();
// Datei leeren
file.resize(0);
// Inhalt ohne erste Zeile wieder in die Datei schreiben
textStream << content;
file.close();
[...]