Zeichen in Datei einfügen

  • Hallo,

    ich habe bisher zum öffnen einer Datei immer fopen und zum schreiben fprintf genutzt. Mit fprintf werden allerdings die Zeichen in der Datei überschrieben. Gibt es eine Funktion mit der man Zeichen und Wörter einfügen kann ohne Einfluss auf den bestehenden Teil der Datei zu haben?

    Bei meiner Suche im Internet bin ich leider nicht fündig geworden.

    Über Hilfe würde ich mich freuen.

    Gruß Steffen

  • Entschuldigung ist mir grade aufgefallen das ich nicht alles wichtige angegeben habe.

    Die Programmiersprache ist c und ich möchte einen String an eine bestimmte Stelle in eine Datei einfügen ohne den Inhalt der danach kommt zu beeinflussen

  • Wenn Du eine normale Textdatei hast bleibt Dir nichts anderes übrig als den gesamten Text der Datei einzulesen, dann deine neue Zeile einzufügen, und dann alles wieder in die Datei rauszuschreiben. Ausser Du möchtest am Ende eine Zeile anfügen. Dann musst Du nur die Datei mit 'a' (append) öffnen und die neue Zeile schreiben.

  • Hallo King of the Road,

    ich kenne auch Möglichkeiten (allerdings nicht in C), dass man angeben kann, an welche Stelle innerhalb der Datei die Ausgabe erfolgen soll. Alles davor und alles nach dem neu Geschriebenen bleibt unverändert.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • ich kenne auch Möglichkeiten (allerdings nicht in C), dass man angeben kann, an welche Stelle innerhalb der Datei die Ausgabe erfolgen soll. Alles davor und alles nach dem neu Geschriebenen bleibt unverändert.


    Das geht auch in C. Das nach hintenschieben der dort liegenden Daten um Platz fuer die neuen Daten zu machen muss aber trotzdem manuell vorgenommen werden :shy: Am einfachsten geht es bei kleineren Dateien so wie ich es schon oben beschrieben habe.
    Automatisch zusammengefügt:
    Falls die Datei größer ist ist der folgende Ansatz sinnvoll:
    In der Datei wird gelesen bis zu der Stelle wo der neue Text einzufügen ist und die ganzen Zeilen dabei in eine neue Datei kopiert. Dann wird die neue Zeile in die neue Datei geschrieben und final alle restlichen Zeilen aus der alten Datei in die neue Datei kopiert. Dann noch ein renamen der neuen Datei in den alten Dateinamen - et voila - die Zeile wurde eingefügt. Das funktioniert auch bei sehr grossen Dateien.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!