2017-03-24 6 views
0

Ich möchte String1 durch String2 in Textdatei ersetzen.Ersetzen Sie String in bestimmte Zeile in der Textdatei

Textdatei:

This is line no 1. 
This is line no 2. 
This is line no 3. 
This is line no 4. 
This is line no 5. 
This is line no 6. 

String ist:

String1 : no 
string2 : number 

ich diese Art von Ausgangsleitung soll 3 bis 5 ersetzen mit "nein" auf "Nummer":

This is line no 1. 
This is line no 2. 
This is line number 3. 
This is line number 4. 
This is line number 5. 
This is line no 6. 
+1

Sie immer nur Linie 3-5 ersetzen? –

+0

Lesen Sie die Datei mit zB 'ReadAllLines', suchen Sie die gewünschten Zeilen, führen Sie die Ersetzung durch und schreiben Sie sie erneut aus. –

+0

Wie @MightyBadaboom sagt, müssen wir die Frage besser verstehen, wie man erkennt, ob eine Zeile geändert werden soll oder nicht. Dann solltest du den Code zeigen, den du ausprobiert hast und wie er nicht das macht, was du willst. _Dann werden wir Ihnen die richtige, nützliche und gezielte Hilfe geben können. – ClickRick

Antwort

5

Ein anderer Ansatz mit Linq

string[] file = File.ReadAllLines(@"c:\yourfile.txt"); 
file = file.Select((x, i) => i > 1 && i < 5 ? x.Replace("no", "number") : x).ToArray(); 
File.WriteAllLines(@"c:\yourfile.txt", file); 
1

System.IO.File.ReadAllLines(string path) kann Ihnen helfen.

Es erstellt Zeichenfolgenarray aus Textdatei, bearbeiten Sie das Array und speichern Sie es mit System.IO.File.WriteAllLines.

string[] Strings = File.ReadAllLines(/*File Path Here*/); 
Strings[2] = Strings[2].Replace("no", "number"); 
Strings[3] = Strings[3].Replace("no", "number"); 
Strings[4] = Strings[4].Replace("no", "number"); 
File.WriteAllLines(/*File Path Here*/, Strings); 
1

Sie sollten dies versuchen:

// Read all lines from text file. 
String[] lines = File.ReadAllLines("path to file"); 
for(int i = 3; i <= 5; i++) // From line 3 to line 5 
{ 
    // Replace 'no' to 'number' in 3 - 5 lines 
    lines[i - 1] = lines[i - 1].Replace("no", "number"); 
} 

// Rewrite lines to file 
File.WriteAllLines("path to file", lines); 
Verwandte Themen