Почему не строка. Заменить работает, как я ожидал? - PullRequest
0 голосов
/ 28 февраля 2012

Я пишу код c # для замены определенных слов из файла.Двухстрочный демонстрационный простой код, который я написал, не работает.Нет ошибки, и Console.WriteLine также дает правильный вывод.

string strFileContent = File.ReadAllText(@"C:\Users\toshal\Documents\TCS\stop_words.txt");
Console.WriteLine("strfilecontent" + strFileContent);
strFileContent = strFileContent.Replace("actually" , " ");

Строка "фактически" не заменяется в файле.В чем здесь может быть проблема?

Ответы [ 2 ]

10 голосов
/ 28 февраля 2012

Конечно, он не заменяется в файле, так как вы только читаете данные и затем изменяете их.

Вы должны будете записать их обратно в файл, если хотите применитьизменения.

string strFileContent = File.ReadAllText(@"C:\Users\toshal\Documents\TCS\stop_words.txt");
Console.WriteLine("strfilecontent" + strFileContent);
strFileContent = strFileContent.Replace("actually" , " ");

StreamWriter SW = File.CreateText(@"C:\Users\toshal\Documents\TCS\stop_words.txt");
SW.Write(strFileContent);
SW.Close();
5 голосов
/ 28 февраля 2012

Вы создаете строку с замененным значением, но никогда не записываете это значение обратно в файл.Поэтому файл остается неизменным.

Чтобы исправить, добавьте следующую строку, чтобы записать измененное значение обратно в файл:

string path = @"C:\Users\toshal\Documents\TCS\stop_words.txt";
string strFileContent = File.ReadAllText(path);
Console.WriteLine("strfilecontent" + strFileContent);
strFileContent = strFileContent.Replace("actually" , " ");
File.WriteAllText(path, strFileContent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...