Exemple #1
0
        public void TestSnifferDelimiter2()
        {
            string     fileName = WriteTextToFile(String.Format(";a,b,|c{0}d,e,f{0}g,|h,i", "\r\n"));
            CSVSniffer sniffer  = CSVSniffer.Sniff(fileName);

            Assert.AreEqual(',', sniffer.Delimiter);
        }
Exemple #2
0
        public void TestHeaderLinesWithoutHeader()
        {
            string     fileName = WriteTextToFile(String.Format("a,b,c{0}d,e,f{0}g,h,i", "\r\n"));
            CSVSniffer sniffer  = CSVSniffer.Sniff(fileName, 0);

            Assert.AreEqual(0, sniffer.HeaderLines);
        }
Exemple #3
0
        public void TestHeaderLinesWithHeader()
        {
            string fileName =
                WriteTextToFile(String.Format("OrderNumber, Quantity, Price{0}a,50,100{0}d,2,4{0}g,100,200", "\r\n"));
            CSVSniffer sniffer = CSVSniffer.Sniff(fileName, 0);

            Assert.AreEqual(1, sniffer.HeaderLines);
        }
Exemple #4
0
        public void TestSnifferTextQualifierNone()
        {
            string     fileName = WriteTextToFile(String.Format("'a,\"b,'c{0}'d,e,'f{0}'g,\"h,'i", "\r\n"));
            CSVSniffer sniffer  = CSVSniffer.Sniff(fileName);

            Assert.AreEqual(',', sniffer.Delimiter);
            Assert.IsFalse(sniffer.TextQualifier.HasValue);
        }
Exemple #5
0
        public void TestSnifferTextQualifierMixed()
        {
            string     fileName = WriteTextToFile(String.Format("'a',\"b,'c'{0}'d',e,'f'{0}'g',\"h\",'i'", "\r\n"));
            CSVSniffer sniffer  = CSVSniffer.Sniff(fileName);

            Assert.AreEqual(',', sniffer.Delimiter);
            Assert.AreEqual('\'', sniffer.TextQualifier);
        }
Exemple #6
0
        public void TestColumnHeadersDuplicate()
        {
            string     fileName = WriteTextToFile(String.Format("OrderNumber, Quantity, Quantity{0}a,b,c{0}d,e,f{0}g,h,i", "\r\n"));
            CSVSniffer sniffer  = CSVSniffer.Sniff(fileName, 1);

            string[] columnHeaders = sniffer.ColumnHeaders;
            Assert.AreEqual(3, columnHeaders.Length);
            Assert.AreEqual("OrderNumber", columnHeaders[0]);
            Assert.AreEqual("Quantity", columnHeaders[1]);
            Assert.AreEqual("Quantity3", columnHeaders[2]);
        }
Exemple #7
0
        public void TestColumnHeadersNoHeader()
        {
            string     fileName = WriteTextToFile(String.Format("a,b,c{0}d,e,f{0}g,h,i", "\r\n"));
            CSVSniffer sniffer  = CSVSniffer.Sniff(fileName, 0);

            string[] columnHeaders = sniffer.ColumnHeaders;
            Assert.AreEqual(3, columnHeaders.Length);
            Assert.AreEqual("Column1", columnHeaders[0]);
            Assert.AreEqual("Column2", columnHeaders[1]);
            Assert.AreEqual("Column3", columnHeaders[2]);
        }
Exemple #8
0
        public void TestColumnHeadersWithMultiHeader()
        {
            string fileName =
                WriteTextToFile(
                    String.Format("-----------------{0}OrderNumber, Quantity, Price{0}--------------------{0}a,b,c{0}d,e,f{0}g,h,i",
                                  "\r\n"));
            CSVSniffer sniffer = CSVSniffer.Sniff(fileName, 3);

            string[] columnHeaders = sniffer.ColumnHeaders;
            Assert.AreEqual(3, columnHeaders.Length);
            Assert.AreEqual("OrderNumber", columnHeaders[0]);
            Assert.AreEqual("Quantity", columnHeaders[1]);
            Assert.AreEqual("Price", columnHeaders[2]);
        }
Exemple #9
0
        private void InferFromSampleFile()
        {
            var sniffer = CSVSniffer.Sniff(SampleFileName, Convert.ToInt32(SkipHeaderLines));

            if (sniffer.Delimiter.HasValue)
            {
                SetDelimiter(sniffer.Delimiter.Value);
                SetTextQualifier(sniffer.TextQualifier);
                this.SkipHeaderLines = sniffer.HeaderLines;
                SetFieldList(sniffer.ColumnHeaders);
            }
            else
            {
                MessageBox.Show("Could not infer delimiter, text qualifier and column headers from file", "Information", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }