Ejemplo n.º 1
0
 public static ParallelLoopResult CsvFileReaderParallel(Stream stream, Action <List <string> > processCsvRow,
                                                        Encoding encoding = null, char delimeter = ',', char quote = '"',
                                                        EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
 {
     return(Parallel.ForEach(ReadEnumerableCsv(stream, encoding, delimeter, quote, emptyLineBehavior),
                             processCsvRow));
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Class voor het lezen van csv files volgens RFC 4180.
 /// Csv file regels worden in cellen opgebroken en teruggegeven.
 /// We doen niet aan datatype conversies: alle velden zijn van type string.
 /// Een eventuele header regel wordt niet anders anders behandeld dan de rest van de csv file.
 /// Tekstvelden mogen tussen een quote karakter gezet worden,
 /// codeer een quote karakter daarbinnen met behulp van twee quotes achter elkaar.
 /// </summary>
 /// <param name="stream">De invoer stream, zorg zelf voor de juiste encoding en eventuele buffering</param>
 /// <param name="fieldDelimiter">Typisch gesproken een puntkomma, een komma of een tab </param>
 /// <param name="quote">Tekstvelden kunnen tussen quotes zitten, om
 /// zodat speciale karakters als gewone tekst wordt verwerkt.</param>
 /// <param name="emptyLineBehavior">Bepaal hoe je met lege regels in de invoer om wilt gaan</param>
 public CsvFileReader(StreamReader stream, char fieldDelimiter = ';', char quote = '"',
                      EmptyLineBehavior emptyLineBehavior      = EmptyLineBehavior.NoCells)
     : base(fieldDelimiter, quote)
 {
     _reader            = stream;
     _emptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Initializes a new instance of the CsvFileReader class for the
 /// specified stream.
 /// </summary>
 /// <param name="stream">The stream to read from</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 public CsvFileReader(Stream stream,
                      EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
 {
     //Reader = new StreamReader(stream, Encoding.GetEncoding("iso-8859-1"));
     Reader            = new StreamReader(stream, Encoding.GetEncoding("windows-1250"));
     EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 4
0
        ///// <summary>
        ///// Initializes a new instance of the CsvFileReader class for the
        ///// specified stream.
        ///// </summary>
        ///// <param name="stream">The stream to read from</param>
        ///// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
        //public CsvFileReader(StreamReader reader,
        //                     EmptyLineBehavior emptyLineBehavior ) {
        //    Reader = reader;
        //    EmptyLineBehavior = emptyLineBehavior;
        //}

        /// <summary>
        /// Initializes a new instance of the CsvFileReader class for the
        /// specified stream.
        /// </summary>
        /// <param name="stream">The stream to read from</param>
        /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
        public CsvFileReader(byte[] stream,
                             EmptyLineBehavior emptyLineBehavior)
        {
            Reader_MemoryStream = new MemoryStream(stream);
            Reader            = CsvFileReaderByAutoDetectEncoding.OpenStream(Reader_MemoryStream, Encoding.UTF8, Encoding.Default); //new StreamReader(ms,true);
            EmptyLineBehavior = emptyLineBehavior;
        }
Ejemplo n.º 5
0
        //        /// <summary>
        //        /// Initializes a new instance of the CsvFileReader class for the
        //        /// specified stream.
        //        /// </summary>
        //        /// <param name="stream">The stream to read from</param>
        //        /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
        //        public CsvFileReader(Stream stream,
        //                         EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
        //        {
        //            Reader = new StreamReader(stream);
        //            EmptyLineBehavior = emptyLineBehavior;
        //        }

        /// <summary>
        ///     Initializes a new instance of the CsvFileReader class for the
        ///     specified file path.
        /// </summary>
        /// <param name="path">The name of the CSV file to read from</param>
        /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
        public CsvFileReader(string path, EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
        {
            var stream = new FileStream(path, FileMode.Open);

            _reader = new StreamReader(stream);
            //            Reader = new StreamReader(path);
            _emptyLineBehavior = emptyLineBehavior;
        }
Ejemplo n.º 6
0
        private string[] LineToArray(string line, EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
        {
            List <string> columns = new List <string>();
            bool          result;
            Stream        stream = new MemoryStream(Encoding.UTF8.GetBytes(line));

            using (CsvFileReader reader = new CsvFileReader(stream, emptyLineBehavior))
            {
                result = reader.ReadRow(columns);
            }

            return(columns.ToArray());
        }
Ejemplo n.º 7
0
        /// <summary>
        ///     Initializes a new instance of the CsvFileReader class for the
        ///     specified file path.
        /// </summary>
        /// <param name="path">The name of the CSV file to read from</param>
        /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
        public CsvFileReader(string path,
                             EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
        {
#if !UNITY_WSA
            //方案一:原始可行方案
            Reader            = new StreamReader(path);
            EmptyLineBehavior = emptyLineBehavior;
#else
            //方案二:兼容UWP方案
            var stream = new FileStream(path, FileMode.OpenOrCreate);
            Reader            = new StreamReader(stream);
            EmptyLineBehavior = emptyLineBehavior;
#endif
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Read csv from Text
        /// </summary>
        /// <param name="text">Input Text</param>
        /// <param name="encoding">Encoding</param>
        /// <param name="delimeter">Delimeter between parameters in files</param>
        /// <param name="quote">Brackets around text</param>
        /// <param name="emptyLineBehavior">Determines how empty lines are interpreted when reading CSV files</param>
        /// <returns>true if file read seccessfully</returns>
        public bool ReadFromText(string text, Encoding encoding, char delimeter = ',', char quote = '"',
                                 EmptyLineBehavior emptyLineBehavior            = EmptyLineBehavior.NoColumns)
        {
            try
            {
                Rows.Clear();
                var columns = new List <string>();
                using (var mem = new MemoryStream())
                    using (StreamWriter writer = new StreamWriter(mem, encoding))
                    {
                        writer.Write(text);
                        writer.Flush();

                        mem.Position = 0;
                        using (var reader = new CsvFileReader(mem, encoding ?? Encoding.UTF8, emptyLineBehavior))
                        {
                            reader.Delimiter = delimeter;
                            reader.Quote     = quote;
                            while (reader.ReadRow(columns))
                            {
                                var cols = Columns.Count;
                                while (Columns.Count < columns.Count)
                                {
                                    //Избегаем Null
                                    var dc = new DataColumn(String.Format("Column{0}", cols++), typeof(string))
                                    {
                                        AllowDBNull  = false,
                                        DefaultValue = string.Empty
                                    };
                                    Columns.Add(dc);
                                }

                                Rows.Add(columns.ToArray <object>());
                            }
                        }
                    }

                FileName = "";

                return(true);
            }
            catch (Exception ex)
            {
            }

            return(false);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Read csv file
        /// </summary>
        /// <param name="filename">Path to file</param>
        /// <param name="encoding">Encoding</param>
        /// <param name="delimeter">Delimeter between parameters in files</param>
        /// <param name="quote">Brackets around text</param>
        /// <param name="emptyLineBehavior">Determines how empty lines are interpreted when reading CSV files</param>
        /// <returns>true if file read seccessfully</returns>
        public bool ReadFromFile(string filename, Encoding encoding, char delimeter = ',', char quote = '"',
                                 EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
        {
            try
            {
                Rows.Clear();
                var columns = new List <string>();
                using (var reader = new CsvFileReader(filename, encoding ?? Encoding.UTF8, emptyLineBehavior))
                {
                    reader.Delimiter = delimeter;
                    reader.Quote     = quote;
                    while (reader.ReadRow(columns))
                    {
                        var cols = Columns.Count;
                        while (Columns.Count < columns.Count)
                        {
                            //Избегаем Null
                            var dc = new DataColumn(String.Format("Column{0}", cols++), typeof(string))
                            {
                                AllowDBNull  = false,
                                DefaultValue = string.Empty
                            };
                            Columns.Add(dc);
                        }

                        Rows.Add(columns.ToArray <object>());
                    }
                }
                FileName = filename;

                return(true);
            }
            catch (Exception ex)
            {
                //throw new Exception("Error while load csv file",ex);
                //MessageBox.Show(String.Format("Error reading from {0}.\r\n\r\n{1}", filename, ex.Message));
            }

            return(false);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Read from file with headers from first row
        /// </summary>
        /// <param name="filename"></param>
        /// <param name="setheaderfromfirstrow"></param>
        /// <param name="encoding"></param>
        /// <param name="delimeter"></param>
        /// <param name="quote"></param>
        /// <param name="emptyLineBehavior"></param>
        /// <returns></returns>
        public bool ReadFromFile(string filename, bool setheaderfromfirstrow = true, Encoding encoding = null, char delimeter = ',', char quote = '"',
                                 EmptyLineBehavior emptyLineBehavior         = EmptyLineBehavior.NoColumns)
        {
            var b = ReadFromFile(filename, encoding, delimeter, quote, emptyLineBehavior);

            try
            {
                for (int i = 0; i < this.Columns.Count; i++)
                {
                    try
                    {
                        this.Columns[i].ColumnName = this.Rows[0][i].ToString();
                    }
                    catch (Exception)
                    {
                    }
                }
            }
            catch (Exception)
            {
            }
            return(b);
        }
Ejemplo n.º 11
0
 private static IEnumerable <List <string> > ReadEnumerableCsv(Stream stream, Encoding encoding = null,
                                                               char delimeter = ',', char quote = '"', EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
 {
     using (
         var csvfile = new CsvFileReader(stream, encoding, emptyLineBehavior)
     {
         Delimiter = delimeter,
         Quote = quote
     })
     {
         var columns = new List <string>();
         while (csvfile.ReadRow(columns))
         {
             yield return(new List <string>(columns));
         }
     }
 }
Ejemplo n.º 12
0
 /// <summary>
 /// Initializes a new instance of the CsvFileReader class for the
 /// specified file path.
 /// </summary>
 /// <param name="path">The name of the CSV file to read from</param>
 /// <param name="encoding">Encoding</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 public CsvFileReader(string path, Encoding encoding = null,
     EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
 {
     Reader = new StreamReader(path, encoding ?? Encoding.UTF8);
     EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 13
0
 public CsvFileReader(string path,
                      EmptyLineBehavior emptyLineBehavior, Encoding encoding)
 {
     Reader            = new StreamReader(path, encoding);
     EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 14
0
 /// <summary>
 /// Initializes a new instance of the CsvFileReader class for the
 /// specified stream.
 /// </summary>
 /// <param name="stream">The stream to read from</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 public CsvFileReader(Stream stream,
                      EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
 {
     Reader            = new StreamReader(stream);
     EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 15
0
 public CsvFileReader(string path, EmptyLineBehavior emptyLineBehavior = 0)
 {
     this.Reader            = new StreamReader(path);
     this.EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 16
0
 ///// <summary>
 ///// Initializes a new instance of the CsvFileReader class for the
 ///// specified stream.
 ///// </summary>
 ///// <param name="stream">The stream to read from</param>
 ///// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 //public CsvFileReader(StreamReader reader,
 //                     EmptyLineBehavior emptyLineBehavior ) {
 //    Reader = reader;
 //    EmptyLineBehavior = emptyLineBehavior;
 //}
 /// <summary>
 /// Initializes a new instance of the CsvFileReader class for the
 /// specified stream.
 /// </summary>
 /// <param name="stream">The stream to read from</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 public CsvFileReader(byte[] stream,
                  EmptyLineBehavior emptyLineBehavior )
 {
     Reader_MemoryStream = new MemoryStream(stream);
     Reader = CsvFileReaderByAutoDetectEncoding.OpenStream(Reader_MemoryStream, Encoding.UTF8, Encoding.Default); //new StreamReader(ms,true);
     EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 17
0
 /// <summary>
 /// Initializes a new instance of the CsvFileReader class for the
 /// specified file path.
 /// </summary>
 /// <param name="path">The name of the CSV file to read from</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 public CsvFileReader(string path,
                      EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
 {
     Reader            = new StreamReader(new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite));
     EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 18
0
 /// <summary>
 /// Read csv file
 /// </summary>
 /// <param name="filename">Path to file</param>
 /// <param name="delimeter"></param>
 /// <param name="encoding">Encoding (null equal Utf-8)</param>
 /// <param name="quote">Brackets around text</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are interpreted when reading CSV files</param>
 /// <returns></returns>
 public bool ReadFromFile(string filename, char delimeter, Encoding encoding = null, char quote = '"',
                          EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
 {
     return(ReadFromFile(filename, encoding, delimeter, quote, emptyLineBehavior));
 }
Ejemplo n.º 19
0
        /// <summary>
        /// 拆分一行csv数据
        /// </summary>
        /// <param name="line"></param>
        /// <param name="expectedReturnValue"></param>
        /// <param name="emptyLineBehavior"></param>
        /// <returns></returns>
        public static List <string> ReaderLine(string line, bool expectedReturnValue = true, EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
        {
            List <string> columns = new List <string>();
            bool          result;

            System.IO.Stream stream = new System.IO.MemoryStream(Encoding.UTF8.GetBytes(line));
            using (CsvFileReader reader = new CsvFileReader(stream, emptyLineBehavior))
            {
                result = reader.ReadRow(columns);
            }
            //Assert(result == expectedReturnValue);
            return(columns);
        }
Ejemplo n.º 20
0
        /// <summary>
        /// Initializes a new instance of the CsvFileReader class for the
        /// specified stream.
        /// </summary>
        /// <param name="stream">The stream to read from</param>
        /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
        public CsvFileReader(StreamReader reader,
		                     EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
        {
            Reader = reader;
            EmptyLineBehavior = emptyLineBehavior;
        }
Ejemplo n.º 21
0
 public CsvFileReader(string path, EmptyLineBehavior emptyLineBehavior = 0)
 {
     this.Reader = new StreamReader(path);
     this.EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 22
0
 // Methods
 public CsvFileReader(Stream stream, EmptyLineBehavior emptyLineBehavior = 0)
 {
     this.Reader = new StreamReader(stream);
     this.EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 23
0
 /// <summary>
 /// Initializes a new instance of the CsvFileReader class for the
 /// specified file path.
 /// </summary>
 /// <param name="path">The name of the CSV file to read from</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 public CsvFileReader(string path,
     EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
 {
     Reader = new StreamReader(path);
     EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 24
0
 /// <summary>
 /// Initializes a new instance of the CsvFileReader class for the
 /// specified file path.
 /// </summary>
 /// <param name="path">The name of the CSV file to read from</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 public CsvFileReader(string path,
                      EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
 {
     Reader            = new StreamReader(path, Encoding.GetEncoding("windows-1250"));
     EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 25
0
 /// <summary>
 /// Initializes a new instance of the CsvFileReader class for the
 /// specified file path.
 /// </summary>
 /// <param name="path">The name of the CSV file to read from</param>
 /// <param name="encoding">Encoding</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 public CsvFileReader(string path, Encoding encoding      = null,
                      EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
 {
     Reader            = new StreamReader(path, encoding ?? Encoding.UTF8);
     EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 26
0
 /// <summary>
 ///     Initializes a new instance of the CsvFileReader class for the
 ///     specified stream.
 /// </summary>
 /// <param name="stream">The stream to read from</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 public CsvFileReader(StreamReader reader,
                      EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NO_COLUMNS)
 {
     _reader            = reader;
     _emptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 27
0
 /// <summary>
 ///     Initializes a new instance of the CsvFileReader class for the
 ///     specified stream.
 /// </summary>
 /// <param name="stream">The stream to read from</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 public CsvFileReader(Stream stream,
                      EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NO_COLUMNS)
 {
     _reader            = new StreamReader(stream);
     _emptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 28
0
 /// <summary>
 ///     Initializes a new instance of the CsvFileReader class for the
 ///     specified file path.
 /// </summary>
 /// <param name="path">The name of the CSV file to read from</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 public CsvFileReader(string path,
                      EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NO_COLUMNS)
 {
     _reader            = new StreamReader(path);
     _emptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 29
0
 /// <summary>
 /// Initializes a new instance of the CsvFileReader class for the
 /// specified stream.
 /// </summary>
 /// <param name="stream">The stream to read from</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 public CsvFileReader(Stream stream,
     EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
 {
     Reader = new StreamReader(stream);
     EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 30
0
 public CsvFileReader(string path,
     EmptyLineBehavior emptyLineBehavior, Encoding encoding)
 {
     Reader = new StreamReader(path, encoding);
     EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 31
0
 // Methods
 public CsvFileReader(Stream stream, EmptyLineBehavior emptyLineBehavior = 0)
 {
     this.Reader            = new StreamReader(stream);
     this.EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 32
0
 /// <summary>
 /// Initializes a new instance of the CsvFileReader class for the
 /// specified file path.
 /// </summary>
 /// <param name="path">The name of the CSV file to read from</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 public CsvFileReader(string path, EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
 {
     Reader = new StreamReader(path, Encoding.Default, true);
     EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 33
0
 /// <summary>
 /// Initializes a new instance of the CsvFileReader class for the
 /// specified stream.
 /// </summary>
 /// <param name="stream">The stream to read from</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 public CsvFileReader(StreamReader reader,
                      EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
 {
     Reader            = reader;
     EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 34
0
        /// <summary>
        /// Read csv file
        /// </summary>
        /// <param name="filename">Path to file</param>
        /// <param name="encoding">Encoding</param>
        /// <param name="delimeter">Delimeter between parameters in files</param>
        /// <param name="quote">Brackets around text</param>
        /// <param name="emptyLineBehavior">Determines how empty lines are interpreted when reading CSV files</param>
        /// <returns>true if file read seccessfully</returns>
        public bool ReadFromFile(string filename, Encoding encoding=null,char delimeter = ',', char quote = '"', EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
        {
            try
            {
                this.Rows.Clear();
                var columns = new List<string>();
                using (var reader = new CsvFileReader(filename,encoding??Encoding.UTF8 ,emptyLineBehavior))
                {
                    reader.Delimiter = delimeter;
                    reader.Quote = quote;
                    while (reader.ReadRow(columns))
                    {
                        var cols = Columns.Count;
                        while (this.Columns.Count < columns.Count)
                        {
                            //Избегаем Null
                            var dc = new DataColumn(String.Format("Column{0}", cols++), typeof(string))
                                {
                                    AllowDBNull = false,
                                    DefaultValue = ""
                                };
                            this.Columns.Add(dc);
                        }

                        this.Rows.Add(columns.ToArray<object>());
                    }
                }
                FileName = filename;

                return true;
            }
            catch (Exception ex)
            {
                //throw new Exception("Error while load csv file",ex);
                //MessageBox.Show(String.Format("Error reading from {0}.\r\n\r\n{1}", filename, ex.Message));
            }

            return false;
        }
Ejemplo n.º 35
0
 /// <summary>
 /// Initializes a new instance of the CsvFileReader class for the
 /// specified file path.
 /// </summary>
 /// <param name="path">The name of the CSV file to read from</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 public CsvFileReader(string path,
                      EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
 {
     Reader            = new StreamReader(path);
     EmptyLineBehavior = emptyLineBehavior;
 }
Ejemplo n.º 36
0
 /// <summary>
 /// Initializes a new instance of the CsvFileReader class for the
 /// specified file path.
 /// </summary>
 /// <param name="path">The name of the CSV file to read from</param>
 /// <param name="emptyLineBehavior">Determines how empty lines are handled</param>
 public CsvFileReader(string path,
                      EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns)
 {
     Reader            = new StreamReader(path, System.Text.Encoding.UTF8);
     EmptyLineBehavior = emptyLineBehavior;
 }