Browse Source

Change `Save` to also use CsvHelper

tznind 2 years ago
parent
commit
6131726560
1 changed files with 15 additions and 9 deletions
  1. 15 9
      UICatalog/Scenarios/CsvEditor.cs

+ 15 - 9
UICatalog/Scenarios/CsvEditor.cs

@@ -365,22 +365,28 @@ namespace UICatalog.Scenarios {
 				
 		}
 
-		private void Save()
+		private void Save ()
 		{
-			if(tableView.Table == null || string.IsNullOrWhiteSpace(currentFile)) {
-				MessageBox.ErrorQuery("No file loaded","No file is currently loaded","Ok");
+			if (tableView.Table == null || string.IsNullOrWhiteSpace (currentFile)) {
+				MessageBox.ErrorQuery ("No file loaded", "No file is currently loaded", "Ok");
 				return;
 			}
+			using var writer = new CsvWriter (
+				new StreamWriter (File.OpenWrite (currentFile)),
+				CultureInfo.CurrentCulture);
 
-			var sb = new StringBuilder();
+			foreach (var col in tableView.Table.Columns.Cast<DataColumn> ().Select (c => c.ColumnName)) {
+				writer.WriteField (col);
+			}
 
-			sb.AppendLine(string.Join(",",tableView.Table.Columns.Cast<DataColumn>().Select(c=>c.ColumnName)));
+			writer.NextRecord ();
 
-			foreach(DataRow row in tableView.Table.Rows) {
-				sb.AppendLine(string.Join(",",row.ItemArray));
+			foreach (DataRow row in tableView.Table.Rows) {
+				foreach (var item in row.ItemArray) {
+					writer.WriteField (item);
+				}
+				writer.NextRecord ();
 			}
-			
-			File.WriteAllText(currentFile,sb.ToString());
 		}
 
 		private void Open()