/// <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; }