Moin!
diese lösung war mir bekannt ich dachte eher an so etwas wie:
setze datei zeiger in zeile 33, lösche zeile, schreibe zeile mit neuem inhalt. Aber wenn das so net funzt muss ichs wohl über den Array umweg machen!
Kann nicht funktionieren, weil deine Zeile 33 aus einer bestimmten Anzahl von Bytes besteht. Nur wenn der neue Inhalt dieser Zeile aus identisch vielen Bytes besteht, kann man an ein Überschreiben der Zeile denken. Sind es weniger oder mehr Bytes, schlägt dieser Versuch aber fehl - wobei weniger Bytes eventuell noch mit Füllbytes auf die korrekte Länge aufgefüllt werden könnten, für zuviele Bytes kann das Dateisystem aber definitiv nicht mehr Platz an dieser Stelle einfügen.
Deshalb ist die allgemeine Lösung immer: Datei einlesen, manipulieren, neu speichern. Wobei man bei kleinen Dateien den Inhalt komplett in den RAM einlesen kann, große Dateien liest man stückchenweise ein und speichert das bearbeitete Resultat in einer zweiten Datei.
- Sven Rautenberg
My sssignature, my preciousssss!