Пример #1
0
        private List <Tuple <string, int, int?> > ProcessCsv(string filepath, char delimiter = ',', char quoteCharacter = '\"', char quoteEscapeCharacter = '\"')
        {
            List <Tuple <string, int, int?> > result = new List <Tuple <string, int, int?> >();

            using (var parser = new NotVisualBasic.FileIO.CsvTextFieldParser(filepath))
            {
                parser.SetDelimiter(delimiter);
                parser.SetQuoteCharacter(quoteCharacter);
                parser.SetQuoteEscapeCharacter(quoteEscapeCharacter);

                while (!parser.EndOfData)
                {
                    var line = parser.ReadFields();

                    int startingPage = 0;
                    if (Int32.TryParse(line[1], out startingPage))
                    {
                        int  endingPage      = 0;
                        bool endingPageGiven = (line.Length > 2) && Int32.TryParse(line[2], out endingPage);
                        result.Add(new Tuple <string, int, int?>(line[0], startingPage, endingPageGiven ? (int?)endingPage : null));
                    }
                    else
                    {
                        Properties.Settings.Default.Log += $"The Song \"{line[0]}\" has no page number ({line[1]}, {line[2]})." + System.Environment.NewLine;
                    }
                }
            }
            Properties.Settings.Default.Save();
            return(result);
        }
Пример #2
0
        public static void CreateWithConfigurationOptions(TextReader csvReader)
        {
            var parser = new NotVisualBasic.FileIO.CsvTextFieldParser(csvReader);

            parser.SetDelimiter('|');
            parser.Delimiters = new[] { "|" };
            parser.SetQuoteCharacter('\'');
            parser.SetQuoteEscapeCharacter('\\');
            parser.HasFieldsEnclosedInQuotes = false;
            parser.TrimWhiteSpace            = true;
        }