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ß