Erste Zeile einer Datei mit QFile löschen

Alles rund um die Programmierung mit Qt
Antworten
gpxricky
Beiträge: 11
Registriert: 12. April 2007 17:55

Erste Zeile einer Datei mit QFile löschen

Beitrag 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
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
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.
caligano
Beiträge: 126
Registriert: 19. August 2006 15:33

Beitrag 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...
Antworten