6

我有这个代码来组合 2 个不同的 csv 文件。

try
{
    var jobStartLine = File.OpenText(PackAuftrag).ReadLine();
    var comparisonField = jobStartLine.Split(';')[4];

    foreach (var line in File.ReadAllLines(BoxData))
    {
        var fields = line.Split(new char[] {';'}, 2);

        if (comparisonField == fields[0])
        {
            File.WriteAllLines(JobStart, 
                               new string[] {jobStartLine + ";" + fields[1]});
            break;
        }
    }
}

我的 BoxData =data1;data2;data3;data4;data5

目前 data2 到 data5 正在进入 JobStart 文件。

Data5 不应包含在 JobStart 文件中。

我想将 data5 设置为全局变量。

我该怎么做,我就是想不通,需要帮助。

这可以帮助理解我的问题:How to compare 2 .csv files and create a new .csv contains part from both csv files?

4

2 回答 2

1
var foo = string.Empty;

try
{
    var jobStartLine = File.OpenText(PackAuftrag).ReadLine();
    var comparisonField = jobStartLine.Split(';')[4];

    foreach (var line in File.ReadAllLines(BoxData))
    {
        var fields = line.Split(new char[] {';'}, 5).ToList();
        foo = fields[4];
        fields.RemoveAt(4);

        if (comparisonField == fields[0])
        {
            File.WriteAllLines(JobStart, 
                           new string[] {jobStartLine + ";" + String.Join(';', fields.ToArray())});
            break;
        }
    }
}

这有点解决了我理解为你的问题。

于 2013-11-15T12:47:12.553 回答
1

这是我解决问题的方法:

  if (File.Exists(JobStart))
        {
            File.Delete(JobStart);
        }

        try
        {
            var jobStartLine = File.OpenText(PackAuftrag).ReadLine();
            var comparisonField = jobStartLine.Split(';')[4];

         foreach (var line in File.ReadAllLines(BoxData))
            {
                var fields = line.Split(new char[] { ';' }, 2);



                if (comparisonField == fields[0])
                {

                    string string2write = "";
                    string2write += JobName + ',';
                    string2write += jobStartLine.Split(';')[0] + ',';
                    string2write += jobStartLine.Split(';')[1] + ',';
                    string2write += jobStartLine.Split(';')[2] + ',';
                    string2write += jobStartLine.Split(';')[3] + ',';
                    string2write += jobStartLine.Split(';')[5] + ',';
                    string2write += line.Split(';')[1] + ',';
                    string2write += line.Split(';')[2] + ',';

                    string2write += line.Split(';')[3] + ',';
                    string2write += line.Split(';')[4] + ',';
                    string2write += line.Split(';')[5] + ',';
                    string2write += line.Split(';')[6];
                    PrinterSelected = line.Split(';')[7];

                    FileStream fst = new FileStream(JobStart, FileMode.Create, FileAccess.Write);
                    StreamWriter stw = new StreamWriter(fst, Encoding.Default);
                    stw.Write(string2write);
                    stw.Dispose();
                    stw.Close();

//                        File.WriteAllLines(JobStart, new string[] { jobStartLine + ";" + fields[1]});


                    break;
                }
于 2013-11-20T15:10:10.670 回答