in Datei schreiben



  • achso. ich dachte es zuerst so:
    - String in Datei suchen
    - Cursor speichern
    - String bearbeiten
    - neuen Cursor setzen
    - String ersetzen

    würde es so nicht gehen?



  • soviel ich weis kann man keine daten in der mitte des daten streams einfügen.. nur am ende anfügen... also komplette daten einlesen editien und wieder zurückschrreiben



  • KingV1k schrieb:

    achso. ich dachte es zuerst so:
    - String in Datei suchen
    - Cursor speichern
    - String bearbeiten
    - neuen Cursor setzen
    - String ersetzen

    würde es so nicht gehen?

    Ja, möglicherweise, ist aber aufwendiger. Die Daten stehen sequentiell in der Datei, also müsstest du alles hinter der Einfügeposition zwischenspeichern und hinter dem ersetzten Abschnitt neu schreiben.

    (kannst du auch erklären, wozu du das ganze brauchst? Möglicherweise können wir dir da einen besseren Ansatz empfehlen)



  • Ja. ich habe in dieser Datei eine Variable. Und diese Variable muss ich durch eine IP-Adresse ersetzen. Und habt ihr ein anderen Ansatz dafür?



  • KingV1k schrieb:

    Ja. ich habe in dieser Datei eine Variable. Und diese Variable muss ich durch eine IP-Adresse ersetzen.

    Geht das auch etwas ausführlicher?



  • Ich habe ein Programm welches anhand mehrerer Dateien ein Zugriff auf ein Server startet. Dieses Programm benutzt Text-Dateien um die Adresse zu bekommen. Jetzt schreibe ich ein Programm, welches diese Dateien editiert. Diese Dateien können eine von zwei Variablen besitzen. Eine heißt z.B. ServerName. Das war die Erklärung für den Teil, welches die Funktion erfüllen muss. War das genau genug? Was musst du noch wissen?

    (Mein Programm soll Altiris mit BartPE verbinden, falls es dir was sagt)



  • scheint dann ne recht kleine datei zu sein. da du hier nicht mit zig megabyte rumjonglieren musst, erscheint mir das komplette einlesen der datei am sinnvollsten und einfachsten.

    du wirst die in deinem editor ja eh wenigstens einmal komplett einlesen müssen. dann kannst du die eingelesenen daten auch einfach ändern und komplett zurückschreiben.



  • Ich habe jetzt echt keine Idee wie ich das machen soll. wenn ich die Datei in einen String einlese, dann werden die Zeilenumbrüche gelöscht.



  • Du kannst getline() verwenden, um eine komplette Textzeile einzulesen - und nach der Anpassung kannst du nach jeder Zeile ein '\n' mit ausgeben, da hast du deine Zeilenumbrüche zurück 😉



  • Hi,

    aus irgendeinem Grund kann ich eine beschriebene Datei nicht mehrmals öffnen und beschreiben. Wisst ihr woran es liegt? Ich schließe die Datei auch richtig.



  • Code? Eventuell solltest du am Ende auch die Fehlerflags zurücksetzen (clear()), bevor du einen vorhandenen fstream wiederverwerten kannst.

    (oder du verwendest seekg(), um wieder zum Dateianfang zurückzukehren)


Anmelden zum Antworten