tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
523
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Eroli Eroli ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    224
    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
     

  2. #2
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Zitat Zitat von Eroli Beitrag anzeigen
    Das muss doch schöner gehen oder nicht?Eroli
    Meines Wissens ist das die einzige Möglichkeit, wobei da allenfalls noch Varianten möglich sind.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  3. #3
    Eroli Eroli ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    224
    Na gut, wenn es nicht anders geht...

    Dankesehr.
     

  4. #4
    martinpriebe martinpriebe ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    125
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
     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
     

Ähnliche Themen

  1. Text in eine Textarea im Hauptwindow hinzufügen
    Von warcraft9105 im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 24.05.08, 23:59
  2. Antworten: 17
    Letzter Beitrag: 23.10.07, 13:28
  3. Antworten: 3
    Letzter Beitrag: 19.10.07, 22:19
  4. Eine Text Datei durchsuchen
    Von flipo84 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 53
    Letzter Beitrag: 26.04.07, 15:09
  5. Antworten: 4
    Letzter Beitrag: 20.09.05, 17:08