On Tuesday, 9 January 2018 at 13:49:41 UTC, Vino wrote:
Hi All,

It is possible to store struct in a array ans use the same in csvReader e.g.

import std.stdio;
import std.container.array;

void main () {
Array!string a;
struct Layout { string name; int value; double other; }

a.insert(Layout);
auto record = uFile.byLineCopy().joiner("\n").csvReader!(Tuple!a[0]))
foreach (record; records)
{
    writeln(record.name);
    writeln(record.value);
    writeln(record.other);
}

From,
Vino.B

Hi All,

Was able to find on hot to store a struct in an array, but not able to use that array in csvReader

Program:
import std.algorithm: joiner;
import std.container.array;
import std.csv: csvReader;
import std.stdio: File, writeln;
import std.typecons: Tuple, tuple;

void main () {
auto fName = "C:\\Users\\bheev1\\Desktop\\Current\\Script\\Others\\Table1.csv";
auto uFile = File(fName, "r");
struct T1 { string Name; string Country; int Age; }
Array!T1 T1s;
foreach (record; uFile.byLineCopy().joiner("\n").csvReader!(Tuple!T1s))
writeln(record);
}

Error:
C:\D\dmd2\windows\bin\..\..\src\phobos\std\typecons.d(523): Error: template instance parseSpecs!(T1s) cannot use local 'T1s' as parameter to non-global template
 parseSpecs(Specs...)
C:\D\dmd2\windows\bin\..\..\src\phobos\std\typecons.d(635): Error: CTFE failed because of previous errors in injectNamedFields ArrayStruct.d(12): Error: template instance ArrayStruct.main.Tuple!(T1s) error instantiating
Failed: ["dmd", "-v", "-o-", "ArrayStruct.d", "-I."]

From,
Vino.B

Reply via email to