2016-04-29 20 views
0

N個のCSVファイルを1つのファイルに結合する。データが並んで存在しなければならず、このこんにちは、私は3つのCSVファイルがあり、それらを結合したい

DatTime_M1 Voltage Currency| Dattime_m2 Volage currency |.....DatTime_N Vol Curr 
2016-04-29 237.1 3.54 2016-04-29 237.1 3.54 2016-04-29 237.1 3.54 
2016-04-29 237.7 3.54 2016-04-29 237.1 3.54 2016-04-29 237.1 3.54 
2016-04-29 236.4 3.54 2016-04-29 237.1 3.54 2016-04-29 237.1 3.54 
2016-04-29 236.4 3.53 2016-04-29 237.1 3.54 2016-04-29 237.1 3.54 

ような何かは私の代わりに、上記は、単にマージまたは同じ行の追加にマージコードを書かれています。 LINQで

string[] files = (Directory.GetFiles(txtConsolidated_OS_CSV.Text.Trim())); 
        foreach (var file in files) 
        { 
         StringBuilder sb = new StringBuilder(); 
         string filename = Path.GetFileNameWithoutExtension(file); 
         if (file.EndsWith(".csv")) 
         { 
          string[] rows = File.ReadAllLines(file); 
          for (int i = 0; i < rows.Length; i++) 
          { 
           if (i == 0) 
           { 
            if (counter == 0) 
            { 
             sb.Append(rows[i] + "\n"); 
             counter++; 
            } 
           } 
           else 
           { 
            sb.Append(rows[i] + "\n"); 
           } 
          } 
         } 
         string csvfile = txtConsolidated_OS_CSV.Text + "\\Merged_OS.csv"; 

         if (File.Exists(csvfile)) 
         { 
          File.AppendAllText(csvfile, sb.ToString()); 
          sb.Clear(); 
         } 
         else 
         { 
          File.WriteAllText(csvfile, sb.ToString()); 
          sb.Clear(); 
         } 
+0

[OK]を、から

var allCsv = Directory.EnumerateFiles("Src-Path", ".*csv", SearchOption.TopDirectoryOnly); string[] header = { File.ReadLines(allCsv.First()).First(l => !string.IsNullOrWhiteSpace(l)) }; // Get CSV Data var mergedData = allCsv.SelectMany(csv => File.ReadLines(csv).SkipWhile(l => string.IsNullOrWhiteSpace(l)).Skip(1)); // skip header of each file File.WriteAllLines("Dest-Path", header.Concat(mergedData)); 

?あなたの3つのファイルがどのように結合されたファイルに到着するのか不明確なあなたの画面を見ると、コンテンツ1とそれに続くコンテンツ2、次に3つの順番、または順番に各フィールドからフィールドを取得しようとしていますか?ファイルを作成し、すべての3ビットの情報をまとめた1つのワイドファイルを作成する> – BugFinder

答えて

0

:あなたはそれを行うだろうか、人間としてhere

関連する問題