2016-04-19 9 views
0

大きなファイルで文字列(関数)を検索したい場合は、別の文字列(シグナル)を検索して置き換える必要があります。私はこのコードを書いていますが、信号は関数の外でも更新されています。私はこの関数の中でのみ見つかったシグナルを変更したいと思います。 Iam初心者のC#とどんな種類の助けにも感謝します。cでファイル内の文字列を検索する#

if (openFileDialog2.FileName.Contains(function)) 
               File.WriteAllText(openFileDialog2.FileName, File.ReadAllText(openFileDialog2.FileName).Replace(signal, replace)); 
              MessageBox.Show("Done"); 
             } 

私も試した 、

string contents = File.ReadAllText(openFileDialog2.FileName); 
               if(contents.Contains(function))            

     {        File.WriteAllText(openFileDialog2.FileName, File.ReadAllText(openFileDialog2.FileName).Replace(signal, replace)); 
               MessageBox.Show("Done"); 
              } 

そしてこれさえ、

using (var reader = new StreamReader(openFileDialog2.FileName)) 
           { 
           string currentLine; 
          if ((currentLine = reader.ReadLine()) != null) 
            { 
            while (currentLine.Contains(function)) 
             { 
                        File.WriteAllText(openFileDialog2.FileName, File.ReadAllText(openFileDialog2.FileName).Replace(signal, replace)); 
              MessageBox.Show("Done"); 
             }}} 

が、何も動作するようです。コードがエラーなしで動作する場合、関数外の信号も更新されます。あなたが新しいコンテンツを書い後を置き換えるようだあなたの2番目の例では

答えて

関連する問題