Cursively
Cursively copied to clipboard
A CSV reader for .NET. Fast, RFC 4180 compliant, and fault tolerant. UTF-8 only.
if the project need to use strong name signature, loader exception will be thrown on runtime (because Cursively.dll is not signed).
On `CsvSyncInputBase`: ```csharp public IEnumerable AsEnumerableFromUTF8() { return AsEnumerableFromUTF8(UTF8FieldDecodingParameters.Default); // CsvReaderVisitorWithUTF8HeadersBase.DefaultMaxHeaderLength } public virtual IEnumerable AsEnumerableFromUTF8(UTF8FieldDecodingParameters fieldDecodingParameters) { // ... } ```
On `CsvAsyncInputBase`: ```csharp public IAsyncEnumerable AsEnumerableFromUtf8() { // ... } public virtual async IAsyncEnumerable AsEnumerable(Encoding inputEncoding) { // ... } ```
The idea behind this "visitor"-based model is to enable intermediate subclasses that provide some of the services that "normal" text and CSV processing libraries offer, e.g., first-class headers with record...
Probably depends on #7. Desired usage: ```csharp public sealed class MyVisitor : CsvUTF8StringArrayReaderVisitorBase { public MyVisitor(int maxFieldLength, int maxFieldCount, DecoderFallback decoderFallback) : base(maxFieldLength, maxFieldCount, decoderFallback) { } public override void...
Desired usage: ```csharp public sealed class MyVisitor : CsvUTF8StringReaderVisitorBase { public MyVisitor(int maxFieldLength, DecoderFallback decoderFallback) : base(maxFieldLength, decoderFallback) { } public override void VisitField(string field) { // do stuff with...
The idea of only supporting streams that look like ASCII could hypothetically be a bit limiting. Technically, nothing's stopping us from exposing a `TextReader`-based API and decoding to UTF-8 on-the-fly...
Throughout the development of 1.x, I've made some mistakes that can only be completely fixed by one or more intentional breaking changes. I intend to follow SemVer 2.0.0, so the...
Something I neglected in 1.1.0 is to ensure that users have a decent experience when trying to discover Cursively's API through IntelliSense or the online API browser. At the moment,...
The visitor optionally lets us ignore a UTF-8 BOM on the first header field if present, **however**, if that field starts with a double-quote, then the tokenizer will fail to...