Ich schreibe dieses Programm, um das Zeichen an der n-ten Stelle einer Zeichenfolge in einer Textdatei zu ersetzen. Meine Textdatei besteht aus dem folgenden Inhalt -Ersetzen Sie ein Zeichen der n-ten Position
the quick brown fox jumped over the lazy dog
the quick brown fox jumped over the lazy dog
the quick brown fox jumped over the lazy dog
the quick brown fox jumped over the lazy dog
Und hier ist der Ausgang des Code -
thehuick brown fox jumped over the lazy dog
Das obige Ergebnis ist nicht das, was ich wollte. Nur eine Zeile wird aktualisiert, der Rest wird nicht mehr in der Datei gefunden.
Hier ist meine komplette Code in C#
var txtFiles = Directory.GetFiles(@"E:\PROJ\replaceY\replaceY\", "*.txt");
foreach (string currentFile in txtFiles)
{
string[] lines = File.ReadAllLines(currentFile);
foreach (string line in lines)
{
var theString = line;
var aStringBuilder = new StringBuilder(theString);
aStringBuilder.Remove(3, 2);
aStringBuilder.Insert(3, "h");
theString = aStringBuilder.ToString();
using (StreamWriter outfile = new StreamWriter(currentFile))
{
outfile.Write(theString.ToString());
}
Console.WriteLine(theString);
Console.ReadKey();
}
}
Wo ich falsch gelaufen? Bitte helfen Sie!
Das ist wahrscheinlich die letzte Zeile, da Sie die Datei in jeder Schleifeniteration überschrieben haben. Probieren Sie 'new StreamWriter (currentFile, true)' – Cole9350
es fügt nur die neue Zeichenfolge in der letzten Zeile an – shaiToro
Ja, Ihre Schreibweise gibt es einen zusätzlichen Schritt, den ich vergessen habe, weil Sie aus der gleichen Datei lesen, überprüfen Sie meine Antwort – Cole9350