Seite 1 von 1

Erste Zeile einer Datei mit QFile löschen

Verfasst: 31. August 2007 00:00
von gpxricky
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

Verfasst: 31. August 2007 07:23
von macman
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.

Verfasst: 31. August 2007 16:06
von caligano
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:

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();

[...]
Da der Inhalt der Textdatei in einen QString kopiert wird, dürfte die Vorgehensweise nur bei kleineren Textdateien effizient arbeiten...