Text mitten in eine Datei hinzufügen?

Eroli

Erfahrenes Mitglied
Hallo,

ich möchte gerne einige Zeilen in eine Datei mitten rein hinzufügen.
Ich benutze C#.

Mein bisheriger Weg war es, die Datei erst einmal auszulesen (StreamReader), dabei alle Strings (ReadLine) in eine Liste zu schreiben, dann die Datei zu löschen, diese dann wieder neu anzulegen und mit dem StreamWriter alle listenelemente plus den einzufügenden Text wieder zu schreiben.

Das muss doch schöner gehen oder nicht?

Viele Grüße,
Eroli
 
Weißt du an welcher Stelle du deinen Text einfügen mußt ?

Entweder die Position oder evt den Satz ?

Dann könntest du den gesamten Block auslesen mit "ReadToEnd()"

Dann nimmst du den Text der ersetzt werden soll.
Dann den geänderten Text.
und dann ein text.Replace oder mit Regex ersetzen.

Oder mit Position. Da wirst du ein bißchen rechnen müssen weil er die Umbruch und Absatzzeichen mitzählt.
Und dann Splitstring erster Teil + dein eingefügter Text + Splitsring zweiter Teil.


Ich habe allerdings keine Ahnung was passiert wenn du ne 10.000 Seiten Textdatei einliest.
Er behält ja alles im Speicher. Könnte aber noch gehen.


Und zum schreiben, einen Streamwriter bauen mit dem Pfad auf die alte Datei.
Du mußt lediglich deinen Reader mit .Close() schließen bevor du den Streamwriter baust.

und dann einfach .Write(text);
.Flush()

Beispiel:
Code:
 System.IO.StreamReader reader = new System.IO.StreamReader("c:\\datei.txt");
                string line;

                line = reader.ReadToEnd();
                line = line.Replace("Das ist mein Satz den ich ersten soll.", "Das ist mein  neuer Satz. Und hier noch einer.");

                //
                reader.Close();

                System.IO.StreamWriter writer = new System.IO.StreamWriter("c:\\datei.txt");         
                writer.Write(line);
                writer.Flush();
                writer.Close();

fertig
 

Neue Beiträge

Zurück