Frage

Wie kann ich mich über eine bestimmte Zeile auf einer Textdatei in c zu überschreiben ?. Ich habe Werte in mehreren Variablen, die auf die Datei geschrieben werden müssen.

War es hilfreich?

Lösung

Das funktioniert aber nur, wenn die neue Linie, die die gleiche Größe wie die alten hat:

  • Öffnen Sie die Datei im Modus a+
  • fseek() zu Beginn der Datei
  • Vor der nächsten Zeile zu lesen, verwenden ftell() den Anfang der Zeile beachten
  • Lesen Sie die Zeile
  • Wenn es die Linie moechten, fseek() wieder mit dem Ergebnis aus ftell() und verwendet fwrite() es zu überschreiben.

Wenn die Länge der Linie ändert, müssen Sie die Datei kopieren.

Andere Tipps

Da Dateien (aus der Sicht der Standardbibliothek C) sind nicht zeilenorientiert, sondern sind nur eine Folge von Zeichen (oder Bytes im Binär-Modus), kann man nicht erwarten, dass sie auf der Linie-Ebene bearbeiten leicht.

Wie Aaron beschrieben, können Sie natürlich die Zeichen ersetzen, die die Linie bilden, wenn Ihr Ersatz genau die gleiche Zeichenzahl ist.

Sie können auch (vielleicht) legen Sie einen kürzeren Ersatz von mit Leerzeichen am Ende Klotzen (vor dem Leitungsabschluss). Das ist natürlich ein bisschen grob.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top