Teile eines ASCI-Files ersetzen?
-
Nabend (Ja, ich weiss, in einem Medium wie dem Internet...)
kleines Problem: Ich habe ein txt-File mit ca. 500 Zeilen, mit verschiedenen Informationen. Nehmen wir an, in Zeile 288 steht eine Versionsnummer. Wie ich das auslesen kann ist mir bekannt (ich mach das über fgets), wie aber kann ich genau diese Zeile mit neuen Einträgen überschreiben? fprintf überschreibt meines Wissens nach nicht, sondern fügt, abhängig von der Art wie die Datei geöffnet wurde, unten an die Datei an.
Mein erster Ansatz wäre, die komplette Datei in einem Array ablegen, die zu ändernde Zeile im Array ändern und dann komplett zurückzuschreiben. Scheint mir aber nicht die eleganteste Lösung zu sein. Meine Frage nun, wie gehts ein wenig eleganter?
Gruss & Dank
Holgie
-
Eine Funktion hierfür gibt's leider in C nicht. Du musst das also entweder über das Array machen, oder Zeile für Zeile lesen, auswerten und in eine andere Datei reinschreiben. Dann kann die alte Datei gelöscht und die neue umbenannt werden.
-
Hm, ob sich da etwas mit fseek() machen ließe? Bin mir jetzt nicht so sicher bei der Anwendung...
-
einfach mit
"r+"
oeffnen und schon kann man ueberschreiben
einfuegen ist allerdings nicht moeglich.
-
Nun gut, nachdem ich einfügen und überschreiben muss, bleibt wohl nur die Arraylösung.
Danke für eure Infos!
Gruss
Holgie