On Monday, 4 September 2017 at 09:22:25 UTC, Vino.B wrote:
Output :
1
2
["C:\\Temp\\TEAM1\\BACKUP", "C:\\Temp\\TEAM2\\ARCHIVE"]

Required Output:
Test1 = 1
Test2 = 2
Path = ["C:\\Temp\\TEAM1\\BACKUP", "C:\\Temp\\TEAM2\\ARCHIVE"]

From,
Vino.B

If you just need it to be displayed then you can add it to the writeln call : writeln("Test 1 = ", Params[0]);

But if you want to do it dynamically then maybe you should be using an associative array or a tuple of tuples :

import std.stdio;
import std.array;
import std.typecons;

alias Result = Tuple!(
        Tuple!(string, int),
        Tuple!(string, int),
        Tuple!(string, string[])
);

Result Params () {
        int Test1;
        int Test2;
        string[] File1;
        string[] File2;
auto Path = appender!(string[]); //string[] path; path.reserve(2) ?
        Test1 = 1;
        Test2 = 2;
        File1 = ["C:\\Temp\\TEAM1\\BACKUP"];
        File2 = ["C:\\Temp\\TEAM2\\ARCHIVE"];
        Path ~= File1;
        Path ~= File2;
        return tuple(
                tuple("Test1", Test1),
                tuple("Test2", Test2),
                tuple("Path", Path.data)
        );

}

void main (){
        auto res = Params();
        writeln(res[0][0], " = ", res[0][1]);
        writeln(res[1][0], " = ", res[1][1]);
        writeln(res[2][0], " = ", res[2][1]);
}

You can also loop through res :

void main (){
        auto res = Params();
        foreach(r; res)
                writeln(r[0], " = ", r[1]);
}

Reply via email to