Bestimmte Zeile aus Textdatei löschen



  • Hallo,
    wie kann ich mittels ANSI C eine bestimmte Zeile aus einer Textdatei löschen die vorher mittels fopen() geöffnet wurde?



  • Ganz einfach!
    Alles einlesen, Zeile löschen, alles wieder in Textdatei schreiben.



  • Entweder in eine Kopiedatei speichern und dann remove+rename, oder alles bis auf die Zeile merken, die Datei schließen und mit w+ oder a+ wieder öffen und das Gemerkte wieder reinschreiben. Das Problem ist, dass deine Zieldatei kürzer ist als die Quelle und du bei bloßem Quasi-Verschieben des Dateiinhaltes nach vorn dann am Dateiende was zurückbehälst, was nicht gewollt sein dürfte.
    POSIX bietet hierfür ftruncate() an, ist aber kein ANSI.


Anmelden zum Antworten