private bool ReadValue(char c, int bytesUsed) { if (c == Separator) { State = CsvState.Separator; return(false); } else if (c == '\r' || c == '\n') { State = CsvState.Linebreak; return(false); } else if (c == '\0' && bytesUsed == 0) { State = CsvState.EndOfFile; return(false); } else { if (IsWhitespace(c)) { TrailingWhitespaceCount++; } else { TrailingWhitespaceCount = 0; } ValueResult.Append(c); return(true); } }
private bool ReadQuotedValue(char c, int bytesUsed) { if (c == QuoteChar) { State = CsvState.QuotedValueQuote; return(true); } else { ValueResult.Append(c); return(true); } }
private bool ReadQuotedValueQuote(char c, int bytesUsed) { if (c == QuoteChar) { // Is escaped quote ValueResult.Append(c); State = CsvState.QuotedValue; return(true); } else { // End of quote, read remainder of field as a regular value until separator State = CsvState.Value; return(false); } }