2

CSVファイルのデータベースから条件をもとに1列(3列目)を更新したい。CSVファイルの部門1500の従業員の100を削除して、に置き換えたい

データベース テーブル:

EmpID DeptID

100 1500

101 1300

102 1500

CSV ファイルは次のようになります。

EmpID,EmpName,Score,Grade1,Grade2,Grade3
100,emp1,100,A1,A3
101,emp2,250,A1,A5,A2
102,emp3,100,A1

結果は次のようになります。

100,emp1,,A1,A3
101,emp2,250,A1,A5,A2
102,emp3,,A1

まず、3 列目の値を置き換えることができません。以下のコードを参照してください。

string file1 = @"F:\test.csv"; string[] lines = System.IO.File.ReadAllLines(file1);
System.IO.StreamWriter sw = new System.IO.StreamWriter(file1);    
foreach(string s in lines) { 
    sw.WriteLine(s.Replace("100", ""));    
}    
sw.Close();

foreach ループで以下の行を指定すると:

sw.WriteLine(Regex.Replace(s, s.Split(',')[2], m => s.Split(',')[2].ToString().Replace("100", "")));

100 からすべての値を空の文字列に置き換えています。

3列目の値を置き換える方法を教えてください。

前もって感謝します。

4

1 に答える 1

2
var lines = new string[10];
var splitLines = lines.Select(l => l.Split(','));
foreach (var splitLine in splitLines)
{
    if (splitLine[2] == "100")
    {
        splitLine[2] = "0";
    }
    var line = string.Join(",", splitLine);

    // And then do what you wish with the line.
}
于 2012-10-27T12:40:33.230 に答える