public RowParser(string columnDelimiter, string rowDelimiter, string qualifier)
        {
            ArgumentVerifier.CheckStringArgument(rowDelimiter, "rowDelimiter");

            if (string.IsNullOrEmpty(columnDelimiter))
            {
                this.singleColumn = true;
                if (string.IsNullOrEmpty(qualifier))
                {
                    this.fieldParser = FieldParser.BuildParserWithSingleDelimiter(rowDelimiter);
                }
                else
                {
                    this.fieldParser = FieldParser.BuildParserWithSingleDelimiterAndQualifier(rowDelimiter, qualifier);
                }
            }
            else
            {
                if (string.IsNullOrEmpty(qualifier))
                {
                    this.fieldParser = FieldParser.BuildParserWithTwoDelimiters(columnDelimiter, rowDelimiter);
                }
                else
                {
                    this.fieldParser = FieldParser.BuildParserWithTwoDelimitersAndQualifier(columnDelimiter, rowDelimiter, qualifier);
                }
            }
        }
예제 #2
0
        public void SkipHeaderRows(IFileReader reader)
        {
            ArgumentVerifier.CheckObjectArgument(reader, "reader");

            if (this.headerRowsToSkip > 0 && !string.IsNullOrEmpty(this.headerRowDelimiter))
            {
                FieldParser headerRowFieldParser = FieldParser.BuildParserWithSingleDelimiter(this.headerRowDelimiter);

                for (int i = 0; i < this.headerRowsToSkip; i++)
                {
                    headerRowFieldParser.ParseNext(reader);
                    if (reader.IsEOF)
                    {
                        break;
                    }
                }
            }
        }