Hi,
Reading another question on Bytes.com I found this question. So assuming these CSV files have the same structure, I can easily join them.
Now to test it I split this CSV file into 5 files: CsvFile1.csv … CsvFile5.csv
"REVIEW_DATE","AUTHOR","ISBN","DISCOUNTED_PRICE" "1985/01/21","Douglas Adams",0345391802,5.95 "1990/01/12","Douglas Hofstadter",0465026567,9.95 "1998/07/15","Timothy ""The Parser"" Campbell",0968411304,18.99 "1999/12/03","Richard Friedman",0060630353,5.95 "2001/09/19","Karen Armstrong",0345384563,9.95 "2002/06/23","David Jones",0198504691,9.95 "2002/06/23","Julian Jaynes",0618057072,12.50 "2003/09/30","Scott Adams",0740721909,4.95 "2004/10/04","Benjamin Radcliff",0804818088,4.95 "2004/10/04","Randel Helms",0879755725,4.50
Now I made the program which makes the deal. Nothing to special here, just want to mention you do not need joining multiple times the column headers.
using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using System.IO; using System.Text; namespace CsvJoiner { static class Program { public static void Main() { string[] csvFileNames = Directory.GetFiles(".", "CsvFile*.csv"); JoinCsvFiles(csvFileNames, "CsvOutput.csv"); } private static void JoinCsvFiles(string[] csvFileNames, string outputDestinationPath) { StringBuilder sb = new StringBuilder(); bool columnHeadersRead = false; foreach (string csvFileName in csvFileNames) { TextReader tr = new StreamReader(csvFileName); string columnHeaders = tr.ReadLine(); // Skip appending column headers if already appended if (!columnHeadersRead) { sb.AppendLine(columnHeaders); columnHeadersRead = true; } sb.AppendLine(tr.ReadToEnd()); } File.WriteAllText(outputDestinationPath, sb.ToString()); } } }Now I'll show the output. To check out this project
download the sources here
"REVIEW_DATE","AUTHOR","ISBN","DISCOUNTED_PRICE" "1985/01/21","Douglas Adams",0345391802,5.95 "1990/01/12","Douglas Hofstadter",0465026567,9.95 "1998/07/15","Timothy ""The Parser"" Campbell",0968411304,18.99 "1999/12/03","Richard Friedman",0060630353,5.95 "2001/09/19","Karen Armstrong",0345384563,9.95 "2002/06/23","David Jones",0198504691,9.95 "2002/06/23","Julian Jaynes",0618057072,12.50 "2003/09/30","Scott Adams",0740721909,4.95 "2004/10/04","Benjamin Radcliff",0804818088,4.95 "2004/10/04","Randel Helms",0879755725,4.50
Excellent. Working Cool..
ReplyDeleteHi
ReplyDeleteHow can I remove empty line within join file