On Tuesday, 7 April 2015 at 05:49:48 UTC, yazd wrote:
I got this to work with:
```
import std.stdio, std.file, std.csv, std.range;
void main()
{
std.file.write("test.csv", "0,1,abc\n2,3,def");
scope(exit) std.file.remove("test.csv");
static struct Rec { int a, b; char[] c; }
auto file = File("test.csv", "r");
foreach (s; csvReader!Rec(file.byLine().joiner("\n")))
{
writeln("struct -> ", s);
}
}
```
I am not sure about using `file.byLine()` here, because
`byLine` reuses its buffer, but this is working correctly (for
some reason, anyone can comment?) as far as I tested.
Btw, joiner is a lazy algorithm. In other words, it doesn't join
the whole file when it is called but only when needed. This
reduces the memory requirements as you won't need the whole file
in memory at once.