0

読み取り/書き込みモードで開いたstreamreaderを使用してファイルを読み取っています。私が持っている要件は、特定のテキストのファイルをチェックし、見つかった場合は、その行を新しい行に置き換えることです。

現在StreamWriter、書き込み用にを初期化しました。

ファイルにテキストを書き込んでいますが、それを新しい行に追加しています。

では、特定の行テキストを置き換えるにはどうすればよいですか?

System.IO.FileStream oStream = new System.IO.FileStream(sFilePath, System.IO.FileMode.Append, System.IO.FileAccess.Write, System.IO.FileShare.Read); 
System.IO.FileStream iStream = new System.IO.FileStream(sFilePath, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite); 

System.IO.StreamWriter sw = new System.IO.StreamWriter(oStream);
System.IO.StreamReader sr = new System.IO.StreamReader(iStream); 

string line;
int counter = 0;
while ((line = sr.ReadLine()) != null)
{
    if (line.Contains("line_found"))
    {
        sw.WriteLine("line_found false");
        break;
    }
    counter++;
}
sw.Close();
sr.Close();
4

1 に答える 1

3

こんにちは、以下のコードを試してください....それはあなたを助けるでしょう....

// テキスト ファイル内のすべての HI を置き換えます...

var fileContents = System.IO.File.ReadAllText(@"C:\Sample.txt");

fileContents = fileContents.Replace("Hi","BYE"); 

System.IO.File.WriteAllText(@"C:\Sample.txt", fileContents);

// 特定の行の HI を置き換えます....

        string[] lines = System.IO.File.ReadAllLines("Sample.txt");
        for (int i = 0; i < lines.Length; i++)
        {
            if(lines[i].Contains("hi"))
            {
                MessageBox.Show("Found");
                lines[i] = lines[i].Replace("hi", "BYE");
                break;
            }
        }
        System.IO.File.WriteAllLines("Sample.txt", lines);
于 2013-01-23T13:29:03.057 に答える