2012-02-28 10 views
0

ファイルから特定の単語を置き換えるためにC#コードを書いています。私が書いた2行デモシンプルコードは動作していません。エラーがなく、正しい出力を出すのもConsole.WriteLineです。なぜ文字列ではないですか?

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

"実際に"文字列がファイルに置き換えられません。 ここで何が問題になりますか?

+1

ここで問題は何ですか?このコードは置換前の文字列を出力し、文字列をファイルに保存し直さないようにします。 – DaveShaw

+1

あなたの例では、再度使用しないので、変数strFileContentが置換呼び出しの後に変更されないことを意味しますか? –

+1

'strFileContent'文字列をファイルに送り返す必要があります。contenctはメモリ内で置き換えられますが、ファイルには戻されません。 – dougajmcdonald

答えて

5

置き換えられた値で文字列を作成していますが、その値をファイルに書き戻すことはありません。したがって、ファイルは変更されません。それがファイルに置き換えなっていないofcourseのあなただけのデータを読み取るよう、

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); 
10

をし、それを変更する:

は戻ってファイルに変更された値を書き込むために次の行を追加、修正します。

変更を適用するには、ファイルに書き戻す必要があります。

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(); 
関連する問題