Sessionfile erzeugen?



  • Hallo,

    ich soll ein „Sessionfile“ in C++ erzeugen.

    Es soll folgendermaßen funktionieren:

    Ich habe mehrere Dateien, z.B. „datei1“ mit folgendem Inhalt:
    __________________
    Hier steht
    Ein formatierter
    Text.
    Irgendwas = Text
    Etwas = 4
    Hier
    steht ein
    formatierter
    Text.
    __________________

    In der eigentlichen Datei selbst steht ebenfalls Text und dann sollen, je nachdem, welcher Fall zutrifft, die einzelnen Dateien aufgerufen und in ein Sessionfile geschrieben werden, also die Datei selbst sieht bspw. so aus:
    __________________
    Hier steht
    auch irgendwie
    Text.

    Hier soll die Datei „datei1“ eingelesen werden.

    Jetzt kommt
    wieder
    Text.

    Hier soll die Datei „datei2“ eingelesen werden.

    Und
    nochmal
    Text.
    __________________

    Das alles soll dann in ein Sessionfile geschrieben werden.

    Wie muss denn nun diese Datei bzw. das Einlesen der Dateien aussehen?
    Zunächst öffne ich die Dateien über fstream. Dann wird eine if-else Schleife durchlaufen und je nachdem, welche Bedingung zutrifft, wird die passende Datei eingelesen. Dann erzeuge ich das Sessionfile (ofstream) und schreibe alles rein.
    Aber wie kann ich den Text nun genau so formatiert (Leerzeichen, Tabs, Absätze,…) eingeben? (Die Texte sollten eigentlich eingerückt sein!) Werden die einzelnen Texte in den Dateien als Funktionen geschrieben und dann einfach mit return zurückgegeben?

    Was das Programmieren angeht, steh ich noch ziemlich am Anfang und weiß grad nicht so recht, wie ich das machen soll.

    Deshalb wäre ich Euch sehr dankbar für Eure Hilfe!



  • Was willst du? Den Inhalt von verschiedenen Dateien in eine kopieren?



  • Ja, im Prinzip schon.
    Es soll eine Datei rauskommen, die sich aus mehreren zusammensetzt und genauso mit Tabs und Absätzen formatiert sein soll.



  • Na, wenn du eine Datei einliest und wieder genauso in eine andere schreibst, dann bleibt die formatierung doch erhalten, wo ist das problem?



  • std::ofstream outfile("alledaten.txt");
    std::ifstream infile;
    
    // kopiere erste Datei in Ausgabedatei
    infile.open("datei1.txt");
    outfile << infile.rdbuf();
    infile.close();
    
    // kopiere zweite Datei in Ausgabedatei
    infile.open("datei2.txt");
    outfile << infile.rdbuf();
    infile.close();
    
    outfile.close();  // hier optional, da die Ausgabedatei im Destruktor geschlossen wird
    

Anmelden zum Antworten