public CsvTable Deserialize(TextReader reader, CsvSettings settings) { if (reader == null) { throw new ArgumentNullException("reader"); } if (settings == null) { throw new ArgumentNullException("settings"); } CsvTable table = new CsvTable(); table.Settings = settings; string allText = reader.ReadToEnd(); string[] rows = allText.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); System.Diagnostics.Debugger.Launch(); if (settings.Header) { table.Header = ParseCsvRecord(rows[0], settings); rows = rows.Skip(1).ToArray(); } foreach (string row in rows) { table.Records.Add(ParseCsvRecord(row, settings)); } return(table); }
public void SaveTable(CsvTable table) { if (table == null) { throw new ArgumentNullException("table"); } if (_serializer == null) { throw new Exception("Serializer cannot be null"); } using (var tw = File.CreateText(table.Location.LocalPath)) { _serializer.Serialize(tw, table); } }
public void Serialize(TextWriter writer, CsvTable table) { if (writer == null) { throw new ArgumentNullException("writer"); } if (table == null) { throw new ArgumentNullException("table"); } if (table.Settings == null) { throw new Exception("CsvTable.Setting cannot be null"); } StringBuilder sb = new StringBuilder(); if (table.Settings.Header && table.Header != null) { foreach (var field in table.Header.Fields) { sb.AppendFormat("{0}{1}", field.Value, table.Settings.Separator); } sb.Append(Environment.NewLine); } if (table.Records != null) { foreach (var record in table.Records) { foreach (var field in record.Fields) { sb.AppendFormat("{0}{1}", field.Value, table.Settings.Separator); } sb.Append(Environment.NewLine); } } writer.Write(sb.ToString()); }