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)); }
/// <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; }
/// <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; }
///// <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; }
// /// <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; }
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()); }
/// <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 }
/// <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); }
/// <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); }
/// <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); }
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)); } } }
/// <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; }
public CsvFileReader(string path, EmptyLineBehavior emptyLineBehavior, Encoding encoding) { Reader = new StreamReader(path, encoding); 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(Stream stream, EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NoColumns) { Reader = new StreamReader(stream); EmptyLineBehavior = emptyLineBehavior; }
public CsvFileReader(string path, EmptyLineBehavior emptyLineBehavior = 0) { this.Reader = new StreamReader(path); this.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(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; }
/// <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; }
/// <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)); }
/// <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); }
/// <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; }
// Methods public CsvFileReader(Stream stream, EmptyLineBehavior emptyLineBehavior = 0) { this.Reader = new StreamReader(stream); this.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) { Reader = new StreamReader(path); 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) { Reader = new StreamReader(path, Encoding.GetEncoding("windows-1250")); 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(StreamReader reader, EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NO_COLUMNS) { _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(Stream stream, EmptyLineBehavior emptyLineBehavior = EmptyLineBehavior.NO_COLUMNS) { _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.NO_COLUMNS) { _reader = new StreamReader(path); _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) { Reader = new StreamReader(path, Encoding.Default, true); EmptyLineBehavior = emptyLineBehavior; }
/// <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; }
/// <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; }