2

(Visual Studio C#2010、Windowsフォームアプリ).txtファイルの一部の単語を置き換えたいと思います。私はそれを行う方法を知っていますが、元のファイルを保持する方法もわかりません。入力ファイルとは別の名前のファイルに変更したテキストを出力したい。そうしないと、元のファイルが上書きされるため、比較を行う簡単な方法がありません...

これは、iveがこれまでに得たものです。

this.openFileDialog1.Filter =`enter code here`"TEXT (*.xml;*.txt|";
this.openFileDialog1.Multiselect = true;
this.openFileDialog1.Title = "My text editor";
DialogResult dr = openFileDialog1.ShowDialog();

if (dr == DialogResult.OK)
{
    foreach (String file in openFileDialog1.FileNames)
    {
        try
        {
            StreamReader reader = new StreamReader(file);
            string content = reader.ReadToEnd();
            reader.Close();

            content = Regex.Replace(content, "play", "player");
            content = Regex.Replace(content, "game", "gamer");
            content = Regex.Replace(content, "walk", "walking");
            StreamWriter writer = new StreamWriter(file);
            writer.Write(content); writer.Close(); 
        }
        catch
        { // The user lacks appropriate permissions to read files, discover paths, etc. MessageBox.Show("Security error. Please contact your administrator for details.\n\n" + "Error message: Not found" ); } {
        }
      }
}
4

2 に答える 2

3

コードでは、読み取りと書き込みに同じファイルを使用しています。読み取り元のファイルとは別のファイルに書き込む必要があるだけです。

StreamReader reader = new StreamReader(file);
string content = reader.ReadToEnd();
reader.Close();

...

StreamWriter writer = new StreamWriter(some_other_file); // <--- here
writer.Write(content); 
writer.Close();
于 2012-08-28T11:47:31.980 に答える
0

これを必ず実行してください:

System.Text.RegularExpressions を使用します。

于 2013-03-11T21:58:25.323 に答える