Piszę ten program, aby zastąpić znak w n-tej pozycji ciągu w pliku tekstowym. Mój plik tekstowy składa się z następujących treści -Zastąp symbol n-tej pozycji
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
I tu jest wyjście kodu -
thehuick brown fox jumped over the lazy dog
Powyższy wynik nie jest to, co chciałem. Aktualizowana jest tylko jedna linia, reszta nie znajduje się już w pliku.
Oto mój pełny kod w 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();
}
}
Gdzie ja poszło nie tak? Proszę pomóż!
To jest prawdopodobnie ostatnia linia, ponieważ nadpisujesz plik w każdej iteracji pętli. Wypróbuj 'nowy StreamWriter (currentFile, true)' – Cole9350
justs dołącza nowy ciąg na ostatniej linii – shaiToro
Tak, twój napis jest dodatkowy krok o którym zapomniałem, ponieważ twój odczyt z tego samego pliku, do którego piszesz, sprawdź moją odpowiedź – Cole9350