示例#1
0
        public void CustomCsvParserReadFromFile()
        {
            CsvParserOptions options = new CsvParserOptions(true, ';');

            CustomCsvParser customCsvParser = new CustomCsvParser(options);

            var stringBuilder = new StringBuilder()
                                .AppendLine("FirstName;LastName;BirthDate")
                                .AppendLine("     Philipp;Wagner;1986/05/12       ")
                                .AppendLine("Max;Mustermann;2014/01/01");

#if NETCOREAPP1_1
            var basePath = AppContext.BaseDirectory;
#else
            var basePath = AppDomain.CurrentDomain.BaseDirectory;
#endif
            var filePath = Path.Combine(basePath, "test_file.txt");

            File.WriteAllText(filePath, stringBuilder.ToString(), Encoding.UTF8);

            var result = customCsvParser
                         .ReadFromFile(filePath, Encoding.UTF8)
                         .ToList();

            Assert.AreEqual(2, result.Count);


            Assert.AreEqual("Philipp", result[0].Tokens[0]);
            Assert.AreEqual("Wagner", result[0].Tokens[1]);

            Assert.AreEqual("Max", result[1].Tokens[0]);
            Assert.AreEqual("Mustermann", result[1].Tokens[1]);
        }
示例#2
0
        public static ParallelQuery <TokenizedRow> ReadFromFile(this CustomCsvParser csvParser, string fileName, Encoding encoding)
        {
            if (fileName == null)
            {
                throw new ArgumentNullException(nameof(fileName));
            }

            var lines = File
                        .ReadLines(fileName, encoding)
                        .Select((line, index) => new Row(index, line));

            return(csvParser.Parse(lines));
        }