c# - 如何比较 2 个 .csv 文件并创建一个包含两个 csv 文件的部分的新 .csv?

标签 c# file csv

我正在尝试比较 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
                           ...

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

NEW JOBSTART.CSV


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

我试着看看:

Compare two csv file using in C#

Comparing specific columns of two csv files

Compare 2 csv files and replace updated values

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

但得不到太多帮助。

最佳答案

试试这个:

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;
    }
}

关于c# - 如何比较 2 个 .csv 文件并创建一个包含两个 csv 文件的部分的新 .csv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19951138/

相关文章:

c# - Windows 应用商店应用程序的 Socket.ConnectAsync 不喜欢 Async

Java游戏无法读取图像文件

python - ValueError:字典包含不在字段名中的字段:无

ruby - 合并 ruby​​ 中的 csv 数据以获得唯一值的总计/总和

Python 代码未显示所需的输出但仍在运行

c# - 大文件处理 - 读取算法中断 - C#

c# - 如何将包含特殊字符的 C# 字符串传递给 MySQL

c# - 当使用可执行文件的完整路径,以管理员身份运行时,Windows 10 无法访问指定的设备、路径或文件

java - 如何访问具有完整文件路径的目录?

Java 相当于 C 中的 fscanf