On Tuesday, 9 January 2018 at 18:09:58 UTC, Vino wrote:
It is possible to store struct in a array ans use the same in csvReader

Sure, you can just pass the type of your struct to csvReader:

Array!T1 T1s;
reader(fName, T1s); // pass the array Type as a function parameter

First you write a template function that takes an array of some generic type and fills it with records from CSV file:

void readData(DataType)(string fname, ref Array!DataType arr) {
    foreach (record; fname.readText.csvReader!DataType('\t')) {
        arr ~= record;
    }
}

Then you can use it in your main program with different types:

struct S1 { string name; string value; int other; }
struct S2 { int a; string b; }

void main () {
    ...
    if (someCondition) {
        Array!S1 arr1;
        readData("data1.csv", arr1);
    } else {
        Array!S2 arr2;
        readData("data2.csv", arr2);
    }
}

A little advice. Kindly pause and spend an evening reading this book:
http://ddili.org/ders/d.en/

Currently your code pieces look like a soup produced by someone who still confuses variables and types, and lacks basic programming skills. Read the book, don't rush with writing broken code.

Reply via email to