how to access record[0] of a csv row? Error: no [] operator overload for type CsvRecord!(int, cast(Malformed)1, string, dchar)
mw
mingwu at gmail.com
Mon Dec 7 04:03:05 UTC 2020
On Monday, 7 December 2020 at 03:51:02 UTC, Paul Backus wrote:
> On Monday, 7 December 2020 at 02:25:23 UTC, mw wrote:
>> onlineapp.d(8): Error: no [] operator overload for type
>> CsvRecord!(int, cast(Malformed)1, string, dchar)
>>
>> should `r`'s type be integer array? and how do I access each
>> elelment of the row?
>>
>> Thanks.
>
> The docs [1] say that csvReader returns an input range, not an
> array. Input ranges don't support indexing, only iteration
> (e.g. with `foreach`). If you want an array, you will have to
> use `std.array.array` to create one.
>
> [1] http://phobos.dpldocs.info/std.csv.csvReader.1.html
Thanks.
I saw the 1st example on this page:
https://dlang.org/phobos/std_csv.html
foreach (record; csvReader!(Tuple!(string, string, int))(text))
{
writefln("%s works as a %s and earns $%d per year",
record[0], record[1], record[2]);
}
So my next question: given N, how do I create a Tuple!(double,
double, ... n-double) type programmatically?
More information about the Digitalmars-d-learn
mailing list