On Friday, 5 January 2018 at 17:50:13 UTC, thedeemon wrote:
Here's my version of solution. I've used ordinary arrays instead of std.container.array, since the data itself is in GC'ed heap anyway. I used csv file separated by tabs, so told csvReader to use '\t' for delimiter.

And since lines of the file are copied to heap anyway, it's easier to skip unnecessary line splitting and joining and do the reading simpler:

import std.file : readText;

auto readData(string fname) {
    Tuple!( staticMap!(Arr, ColumnTypes) ) res; // array of tuples
foreach (record; fname.readText.csvReader!(Tuple!ColumnTypes)('\t'))
        foreach(i, T; ColumnTypes)
            res[i] ~= record[i];
    return res;
}

Reply via email to