Zeile aus File löschen: Wie macht IHR das?



  • hi!
    also wenn ich irgend wo aus einer Datei eine Zeile herauslöschen möchte, lese ich die komplette Datei in ein char[][] und schreibe das gesamte array wieder in das file. Ne andere Möglichkeit ist, den Inhalt der zu modifizierenden Datei A ohne der betreffenden Zeile in eine tmp Datei B zu schreiben und diese tmp Datei dann in A umbenennen und die alte A somit überschreiben...

    Irgendwie ist das alles verdammt ineffizient und dauert lange!
    Wie löst ihr dieses Problem?

    lilo



  • Wenn du zeilenorientiert bist kannst du dir mit ftel den Anfang einer Zeile merken.
    Ablauf:
    0- lastline =0
    1- File öffnen
    2- Zeile lesen
    3- mit ftell Position merken in actline
    4- lastline = actline wenn zeile nicht gelöscht werden soll
    5- 2 3 4 solange wiederholen bis zur zu löschende Zeile dort nicht lastline = actline
    6- danach weiter so bis zum Ende des Files, Zeile Lesen und an die POsition lastline schreiben
    7- file schließen
    Du arbeitest nur in einem File und mußt erst ab der gelöschten zeile umkopieren.

    Viel Spaß


Anmelden zum Antworten