On 2/25/12, Andrej Mitrovic <andrej.mitrov...@gmail.com> wrote: > I'm not sure where you're getting that from:
Let that be a classic lesson on what never to do. Here's a demonstration on how wrong I was: import std.stdio; struct Foo { char[] name; } void main(string[] args) { if (args[1] == "write") { Foo foo; foo.name = new char[](16); foo.name[] = 'a'; writeln(foo); auto file = File("test.bin", "w"); auto writeBytes = fwrite(&foo, byte.sizeof, foo.sizeof, file.getFP()); } else if (args[1] == "read") { Foo foo; auto file = File("test.bin", "r"); auto readBytes = fread(&foo, byte.sizeof, foo.sizeof, file.getFP()); writeln(foo); } } $ D:\dev\code\d_code>test write Foo("aaaaaaaaaaaaaaaa") $ D:\dev\code\d_code>test read Foo(x"D8 6E 43 00 01 00 00 00 08 00 00 00 90 A0 42 00"c) :) To OP: If you want to serialize I recommend ae's json module (ae.util.json) from https://github.com/CyberShadow/ae . There's also Orange but it's based on xml and seems to be buggy the last time I've tried it.