www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - AssocArray to string is ok,but how to get the AssocArray from string?

reply Frank Like <1150015857 qq.com> writes:
Hi,everyone,
who can help me,about the "AssocArray to string is ok,but how to 
get the AssocArray from string? ".

For example:

SysTime[][string] AATimes;
AATimes["a1"] =[SysTime(DateTime(2017, 1, 1, 12, 33, 
33)),SysTime(DateTime(2017, 1, 2, 12, 33, 33))];
AATimes["a2"] =[SysTime(DateTime(2017, 1, 2, 12, 33, 
33)),SysTime(DateTime(2017, 1, 3, 12, 33, 33))];

   ubyte[] ua = cast(ubyte[])AATimes.to!string;
   writeln("ua is ",ua);
	
   string strTimes = cast(string)ua;
    writeln("strTimes is ",strTimes);

But now,how to get the AATimes from string?

Thanks.

Frank.
Dec 12 2017
next sibling parent reply Azi Hassan <azi.hassan live.fr> writes:
On Tuesday, 12 December 2017 at 17:32:15 UTC, Frank Like wrote:
 Hi,everyone,
 who can help me,about the "AssocArray to string is ok,but how 
 to get the AssocArray from string? ".

 For example:

 SysTime[][string] AATimes;
 AATimes["a1"] =[SysTime(DateTime(2017, 1, 1, 12, 33, 
 33)),SysTime(DateTime(2017, 1, 2, 12, 33, 33))];
 AATimes["a2"] =[SysTime(DateTime(2017, 1, 2, 12, 33, 
 33)),SysTime(DateTime(2017, 1, 3, 12, 33, 33))];

   ubyte[] ua = cast(ubyte[])AATimes.to!string;
   writeln("ua is ",ua);
 	
   string strTimes = cast(string)ua;
    writeln("strTimes is ",strTimes);

 But now,how to get the AATimes from string?

 Thanks.

 Frank.
Serialization seems to be the answer. Unfortunately I could neither get it to work with Cereal nor with Orange. If all else fails, you could still attempt to manually parse it ot of its string representation (AATimes.to!string).
Dec 12 2017
parent Frank Like <1150015857 qq.com> writes:
On Tuesday, 12 December 2017 at 21:18:19 UTC, Azi Hassan wrote:
 Serialization seems to be the answer. Unfortunately I could 
 neither get it to work with Cereal nor with Orange. If all else 
 fails, you could still attempt to manually parse it ot of its 
 string representation (AATimes.to!string).
Thank you. Now,I find that works ok on string[],and not work on SysTime[].
Dec 14 2017
prev sibling parent reply Nicholas Wilson <iamthewilsonator hotmail.com> writes:
On Tuesday, 12 December 2017 at 17:32:15 UTC, Frank Like wrote:
 Hi,everyone,
 who can help me,about the "AssocArray to string is ok,but how 
 to get the AssocArray from string? ".

 For example:

 SysTime[][string] AATimes;
 AATimes["a1"] =[SysTime(DateTime(2017, 1, 1, 12, 33, 
 33)),SysTime(DateTime(2017, 1, 2, 12, 33, 33))];
 AATimes["a2"] =[SysTime(DateTime(2017, 1, 2, 12, 33, 
 33)),SysTime(DateTime(2017, 1, 3, 12, 33, 33))];

   ubyte[] ua = cast(ubyte[])AATimes.to!string;
   writeln("ua is ",ua);
 	
   string strTimes = cast(string)ua;
    writeln("strTimes is ",strTimes);

 But now,how to get the AATimes from string?

 Thanks.

 Frank.
Have a look at std.conv.parse
Dec 13 2017
parent Frank Like <1150015857 qq.com> writes:
On Wednesday, 13 December 2017 at 08:39:00 UTC, Nicholas Wilson 
wrote:
 Have a look at std.conv.parse
I know it.But it's not work with DateTime or SysTime. Now,it's only work on string. But thank you.
Dec 14 2017