eBay / tsv-utils

eBay's TSV Utilities: Command line tools for large, tabular data files. Filtering, statistics, sampling, joins and more.
https://ebay.github.io/tsv-utils/
Boost Software License 1.0
1.42k stars 80 forks source link

Q: any API doc? how to skip empty field in csvReader? #358

Open mw66 opened 1 year ago

mw66 commented 1 year ago

https://forum.dlang.org/thread/pcyxzjmlowdzqoroicdd@forum.dlang.org

If there is any API doc?

Readme only has command line doc.

BTW, how to skip empty field in csvReader? E.g. how to achieve the following in this library? Thanks.

https://run.dlang.io/is/9afmT1

void main()
{
    import std.csv;
    import std.stdio: write, writeln, writef, writefln;
    import std.algorithm.comparison : equal;
    string text = "Hello;65;;\nWorld;123;7.5";
    struct Layout
    {
        string name;
        int value;
        double other;
    }

    auto records = text.csvReader!Layout(';');
    assert(records.equal([
        Layout("Hello", 65, 2.5),
        Layout("World", 123, 7.5),
    ]));

}

There is an empty field in the 1st line: "Hello;65;;", then

std.csv.CSVException@/dlang/dmd/linux/bin64/../../src/phobos/std/csv.d(1232): Floating point conversion error for input "".

Is there a way to tell csvReader to skip such empty fields?

dejlek commented 2 weeks ago

You do realise that tsv-tools and the csv module from Phobos have nothing in common? :)