コード例 #1
0
        /// <summary>
        /// Save
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, EventArgs e)
        {
            var fbd = new FolderBrowserDialog();

            if (fbd.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            var savepath = Path.Combine(fbd.SelectedPath, _ofd.SafeFileName);
            var dt       = LoadFile(_ofd.FileName);
            var text     = String.Empty;



            var test = checkBoxTestOldSanitizer.Checked;

            string applyWrapper = comboBoxWrapWhen.Text;


            var config = new CsvReaderV2Config()
            {
                QualifierWhen = new CsvReaderV2Config().ConvertQualifier(applyWrapper)
            };

            using (var csv = new CsvReaderV2(config))
            {
                text = csv.CreateString(dt);
            }

            File.WriteAllText(savepath, text);

            MessageBox.Show("File saved!");
        }
コード例 #2
0
ファイル: CsvTools.cs プロジェクト: BryanAdamHopper/MBCT.Csv
        /// <summary>
        ///
        /// </summary>
        /// <param name="strCSV"></param>
        /// <param name="headerRow"></param>
        /// <param name="scanRows"></param>
        /// <param name="displayRows"></param>
        /// <returns></returns>
        public static DataTable CreateDataTable(string strCSV, bool headerRow = true, int scanRows = 0, int displayRows = 0)
        {
            var config = new CsvReaderV2Config()
            {
                IncludeHeaders = true, DisplayRows = displayRows
            };

            using (CsvReaderV2 csv = new CsvReaderV2(config))
            {
                return(csv.CreateDataTable(strCSV));
            }
        }
コード例 #3
0
        public void CsvReaderV2Config_ConvertQualifier_StringNotCovered_ReturnsDefaultApplyQualifier()
        {
            //Prep
            var config = new CsvReaderV2Config()
            {
            };

            //Action
            var expected = CsvReaderV2Config.ApplyQualifier.Always;
            var actual   = config.ConvertQualifier("ThisIsNotAValidApplyQualifier");

            //Assert
            Assert.AreEqual(expected, actual);
        }
コード例 #4
0
        public void CsvReaderV2Config_ConvertQualifier_StringOnlyWhenNeeded_ReturnsApplyQualifier()
        {
            //Prep
            var config = new CsvReaderV2Config()
            {
            };

            //Action
            var expected = CsvReaderV2Config.ApplyQualifier.OnlyWhenNeeded;
            var actual   = config.ConvertQualifier("OnlyWhenNeeded");

            //Assert
            Assert.AreEqual(expected, actual);
        }
コード例 #5
0
        public void CsvReaderV2Config_ConvertQualifier_StringAlways_ReturnsApplyQualifier()
        {
            //Prep
            var config = new CsvReaderV2Config()
            {
            };

            //Action
            var expected = CsvReaderV2Config.ApplyQualifier.Always;
            var actual   = config.ConvertQualifier("Always");

            //Assert
            Assert.AreEqual(expected, actual);
        }
コード例 #6
0
        private string GetCsvStringBaic(CsvReaderV2Config config)
        {
            var q = config.GetQualifier();
            var d = config.GetDelimiter();

            var text = String.Empty;

            text += $"{q}A{q}{d}{q}B{q}{d}{q}C{q}" + Environment.NewLine;
            text += $"{q}1{q}{d}{q}2{q}{d}{q}3{q}" + Environment.NewLine;
            text += $"{q}4{q}{d}{q}5{q}{d}{q}6{q}" + Environment.NewLine;
            text += $"{q}7{q}{d}{q}8{q}{d}{q}9{q}" + Environment.NewLine;
            text += String.Empty;

            return(text);
        }
コード例 #7
0
        public void CsvReaderV2Config_ConfigQualifier_SingleQuote_ReturnsDataTable()
        {
            //Prep
            var config = new CsvReaderV2Config()
            {
                Qualifier = CsvReaderV2Config.CsvQualifier.SingleQuote
            };

            //Action
            var dt = GetTestTable(config);

            //Assert
            var pass = DataIsGood(dt);

            Assert.IsTrue(pass);
        }
コード例 #8
0
        public void CsvReaderV2_CreateDataTable_ConfigDisplkayRows0NoHeaders_CsvString_ReturnsDataTableWith1Row()
        {
            //Prep
            var csvText = GetCsvStringAdvanced();
            var config  = new CsvReaderV2Config()
            {
                IncludeHeaders = false, DisplayRows = 0
            };
            var csv = new CsvReaderV2(config);

            //Action
            var dt = csv.CreateDataTable(csvText);

            //Assert
            Assert.IsTrue(dt.Rows.Count == 1);
        }
コード例 #9
0
        public void CsvReaderV2Config_ConfigDelimiter_Space_ReturnsDataTable()
        {
            //Prep
            var config = new CsvReaderV2Config()
            {
                Delimiter = CsvReaderV2Config.CsvDelimiter.Space
            };

            //Action
            var dt = GetTestTable(config);

            //Assert
            var pass = DataIsGood(dt);

            Assert.IsTrue(pass);
        }
コード例 #10
0
        public void CsvReaderV2Config_SetQualifierWhen_StringQualifier_ReturnsApplyQualifier()
        {
            //Prep
            var config = new CsvReaderV2Config()
            {
            };

            //Action
            var expected = CsvReaderV2Config.ApplyQualifier.Always;

            config.SetQualifierWhen("Always");
            var actual = config.QualifierWhen;

            //Assert
            Assert.AreEqual(expected, actual);
        }
コード例 #11
0
        public void CsvReaderV2_CreateString_DataTable_ReturnsCsvString()
        {
            //Prep
            var csvText = GetCsvStringAdvanced();
            var config  = new CsvReaderV2Config()
            {
                IgnoreFalsePositiveEmptyRows = true
            };
            var dt = new CsvReaderV2(config).CreateDataTable(csvText);

            //Action
            var text     = new CsvReaderV2(config).CreateString(dt);
            var expected = GetCsvStringAdvanced_Wrapped();

            //Assert
            Assert.AreEqual(expected, text);
        }
コード例 #12
0
        public void CsvReaderV2_CreateString_ConfigHeadersFalse_DataTable_ReturnsCsvString()
        {
            //Prep
            var csvText = GetCsvStringAdvanced();
            var config  = new CsvReaderV2Config()
            {
                IncludeHeaders = false
            };
            var dt = new CsvReaderV2(config).CreateDataTable(csvText);

            //Action
            var text     = new CsvReaderV2(config).CreateString(dt);
            var expected = GetExpected_Advanced_ConfigHeadersFalse();

            //Assert
            Assert.AreEqual(expected, text);
        }
コード例 #13
0
        public void CsvReaderV2MbctOnly_CreateStringLegacy_Input_Returns()
        {
            //Prep
            var csvText = File.ReadAllText(GetTestDataPath("CSV_Advanced04_LotsOfStuff.txt"));
            var config  = new CsvReaderV2Config()
            {
            };
            var dt = new CsvReaderV2(config).CreateDataTable(csvText);

            //Action
#pragma warning disable CS0618 // Obsolete Attribbute on method call
            var text = new CsvReaderV2().CreateString(dt, wrapOnlyIfNeeded: false, includeHeaders: true);
#pragma warning restore CS0618 // Obsolete Attribbute on method call
            var expected = File.ReadAllText(GetTestDataPath("Result_Advanced04_LotsOfStuff.txt"));

            //Assert
            Assert.AreEqual(expected, text);
        }
コード例 #14
0
        public void CsvReaderV2_CreateDataTable_ConfigDefault_CsvString_ReturnsDataTableWithAllRows()
        {
            //Prep
            var csvText = GetCsvStringAdvanced();

            var config = new CsvReaderV2Config()
            {
            };

            var dt = new DataTable();

            using (var csv = new CsvReaderV2(config))
            {
                //Action
                dt = csv.CreateDataTable(csvText);
            }

            //Assert
            Assert.IsTrue(dt.Rows.Count == 5, message: $"Rows({dt.Rows.Count}) Cols({dt.Columns.Count})");
        }
コード例 #15
0
        public void CsvReaderV2_CreateString_ConfigNewFlagFalse_DataTable_ReturnsCsvString()
        {
            //Prep
            var csvText = GetCsvStringAdvanced();
            var config  = new CsvReaderV2Config()
            {
                IgnoreFalsePositiveEmptyRows = false
            };
            var dt = new CsvReaderV2(config).CreateDataTable(csvText);

            //Action
            var text     = new CsvReaderV2(config).CreateString(dt);
            var expected = "";

            //expected = File.ReadAllText(GetTestDataPath("Result_Advanced04_LotsOfStuff_ConfigNewFlagFalse.txt"));
            expected = GetExpected_Advanced_ConfigNewFlagFalse();

            //Assert
            Assert.AreEqual(expected: expected, actual: text);
        }
コード例 #16
0
        public void CsvReaderV2MbctOnly_CreateDataTableLegacy_Input_Returns()
        {
            //Prep
            var csvText = File.ReadAllText(GetTestDataPath("CSV_Advanced04_LotsOfStuff.txt"));
            var config  = new CsvReaderV2Config()
            {
            };

            var dt = new DataTable();

            using (var csv = new CsvReaderV2(config))
            {
                //Action
#pragma warning disable CS0618 // Obsolete Attribbute on method call
                dt = csv.CreateDataTable(csvText, headerRow: true, displayRows: -1);
#pragma warning restore CS0618 // Obsolete Attribbute on method call
            }

            //Assert
            Assert.IsTrue(dt.Rows.Count == 5, message: $"Rows({dt.Rows.Count}) Cols({dt.Columns.Count})");
        }
コード例 #17
0
        private DataTable GetTestTable(CsvReaderV2Config config)
        {
            var text = GetCsvStringBaic(config);

            return(new CsvReaderV2(config).CreateDataTable(text));
        }