1

.CSV ファイルのテキストを変更しようとしています。

StreamReader sReader = new StreamReader(path1);
while (sReader.Peek() != -1)
{
    rowValue = sReader.ReadLine();
    if (rowValue == "25")
    {
         sWriter = new StreamWriter(path1);
         rowValue = "27";
         sWriter.WriteLine(rowValue);
    }
}

何も起こらなかった。正しい方法は何ですか?

4

3 に答える 3

1

System.IO.File.ReadAllLines と System.IO.File.WriteAllLines を使用すると、このタスクを簡単に実行できます。

string[] lines = File.ReadAllLines(path1);

for(int i = 0; i < lines.Length; i++)
{
  if(lines[i] == "25") lines[i] = "27";
}

File.WriteAllLines(path1, lines);
于 2012-06-30T12:32:46.607 に答える
1

あなたがやろうとしていることができるとは思いません... 1行を更新します。まったく機能している場合は、ファイルの末尾に値27を追加しています。

ReadAllLinesメソッドとメソッドを確認してくださいWriteAllLines。ファイル全体を読み込み、変更したい行を変更してから書き戻す必要があります。

于 2012-06-30T12:26:29.980 に答える
1

読み取るファイルがそれほど大きくない場合は、メモリ内のすべてを読み取って書き戻すことができます。

string[] lines = File.ReadAllLines(path1);
using(StreamWrite sw = new StreamWriter(path1))
{
    foreach(string line in lines)
    {
        string lineOut = line;
        if (line == "25") 
           lineOut = "27"; 
        sw.WriteLine(lineOut);
    }
    sw.Flush();
}
于 2012-06-30T12:26:43.150 に答える