Thread overview |
---|
January 09, 2018 Creating Struct for an output of a program. | ||||
---|---|---|---|---|
| ||||
Hi All, Request your help on how to create a struct with the output of the below program. Program: import std.algorithm: all, map, filter; import std.stdio: File, writeln; import std.typecons: Tuple, tuple; import std.container.array; import std.string: split, strip; import std.uni: isWhite, toLower; import std.range: chunks; void main () { Array!string TableData, StructureData; auto Meta = File("C:\\Users\\bheev1\\Desktop\\Current\\Script\\Others\\meta\\meta.txt", "r"); auto MetaData = Array!(Tuple!(string, string))(Meta.byLineCopy() .filter!(line => !line.all!isWhite) .map!(a => a.split(":")) .map!(a => tuple(a[0].toLower.strip, a[1].toLower.strip))); foreach (line; MetaData[]) { TableData.insertBack(line[0]); StructureData.insertBack(line[1]); } for(int i = 0; i < TableData[].length; i++ ) { auto S1 = StructureData[i].split(",").chunks(3); auto S2 = S1.map!(a => tuple(a[0],a[1],a[2])); for(int z =0; z < S2.length; z++) { writefln("%-8s %;s", S2[z][1] , S2[z][0]); } } } Output: string name; string country; int age; Need to create as struct using the output struct Layout { { string name; string country; int age; } From, Vino.B |
January 09, 2018 Re: Creating Struct for an output of a program. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Vino | On Tuesday, 9 January 2018 at 07:57:19 UTC, Vino wrote:
> Hi All,
>
> Request your help on how to create a struct with the output of the below program.
>
> Program:
> import std.algorithm: all, map, filter;
> import std.stdio: File, writeln;
> import std.typecons: Tuple, tuple;
> import std.container.array;
> import std.string: split, strip;
> import std.uni: isWhite, toLower;
> import std.range: chunks;
>
> void main () {
> Array!string TableData, StructureData;
> auto Meta = File("C:\\Users\\bheev1\\Desktop\\Current\\Script\\Others\\meta\\meta.txt", "r");
> auto MetaData = Array!(Tuple!(string, string))(Meta.byLineCopy()
> .filter!(line => !line.all!isWhite)
> .map!(a => a.split(":"))
> .map!(a => tuple(a[0].toLower.strip, a[1].toLower.strip)));
> foreach (line; MetaData[]) { TableData.insertBack(line[0]); StructureData.insertBack(line[1]); }
> for(int i = 0; i < TableData[].length; i++ ) {
> auto S1 = StructureData[i].split(",").chunks(3);
> auto S2 = S1.map!(a => tuple(a[0],a[1],a[2]));
> for(int z =0; z < S2.length; z++)
> { writefln("%-8s %;s", S2[z][1] , S2[z][0]); }
> }
> }
>
> Output:
> string name;
> string country;
> int age;
>
>
> Need to create as struct using the output
>
> struct Layout {
> {
> string name;
> string country;
> int age;
>
> }
>
> From,
> Vino.B
if S2 consists of data for Layout struct, then you can simply do:
auto S2 = S1.map!(a => Layout(a[0], a[1], a[2]));
which will give you a range of Layout.
|
January 09, 2018 Re: Creating Struct for an output of a program. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mengu | On Tuesday, 9 January 2018 at 12:50:04 UTC, Mengu wrote:
> On Tuesday, 9 January 2018 at 07:57:19 UTC, Vino wrote:
>> [...]
>
> if S2 consists of data for Layout struct, then you can simply do:
>
> auto S2 = S1.map!(a => Layout(a[0], a[1], a[2]));
>
> which will give you a range of Layout.
Hi,
We want the Layout struct to be created from the output of S1, in the above the Layout is a example of the struct structure that we needed.
From,
Vino.B
|
Copyright © 1999-2021 by the D Language Foundation