3

我正在尝试比较 CSV 文件的两个特定部分。

JobStart.csv
test1;test2;test3;test4;Val2Compare2;test5;test6;test7....

Datafile.csv
line 1   Val2Compare1; data1;data2;data3;data4;data5;data6
line 2   Val2Compare2; data1;data2;data3;data4;data5;data6
line 3   Val2Compare3; data1;data2;data3;data4;data5;data6

我想做的是:

比较值:JobStart.csv Val2Compare2 到

     Datafile.csv          Val2Compare1
                           Val2Compare2
                           Val2Compare3
                           ...

当我得到哪一行是真的(在本例中为 line2)。然后我想像这样组合 JobStat.csv 和 Datafile.csv :

NEW JOBSTART.CSV


test1;test2;test3;test4;Val2Compare2;test5;test6;test7; data1;data2;data3;data4;data5

我试着看:

在 C# 中使用比较两个 csv 文件

比较两个 csv 文件的特定列

比较 2 个 csv 文件并替换更新的值

http://social.msdn.microsoft.com/Forums/vstudio/en-US/3f334045-2ac7-44b9-afaa-bd8d83c8ef27/read-csv-file-and-get-specific-column-from-each-line?论坛=csharpgeneral

但得不到太多帮助。

4

1 回答 1

2

尝试这个:

var jobStartLine = File.OpenText(@"JobStart.csv").ReadLine();
var comparisonField = jobStartLine.Split(';')[4];

foreach (var line in File.ReadAllLines(@"Datafile.csv"))
{
    var fields = line.Split(new char[] {';'}, 2);
    if (comparisonField == fields[0])
    {
        File.WriteAllLines(@"NewJobStart.csv", new string[] { jobStartLine + ";" + fields[1] });
        break;
    }
}
于 2013-11-13T13:55:23.817 回答