<div dir="ltr">A record #recname{data1="X",data2="Y",...} is just a tuple of the form {recname, "X", "Y",...}. Nested records are therefore just nested tuples.<br><br>You can dump the contents of any Erlang term using term_to_binary and then save that binary to disk. You can then restore the contents using binary_to_term.<br>
<br><span style="font-family: courier new,monospace;">(xhg1@ender)8> R = {rec1,1,2,{rec2,"A","B",{rec3,[1],[2]},"D","E"},3,4,5}.</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">{rec1,1,2,{rec2,"A","B",{rec3,[1],[2]},"D","E"},3,4,5}</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">(xhg1@ender)9> B = term_to_binary(R).</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"><<131,104,7,100,0,4,114,101,99,49,97,1,97,2,104,6,100,0,4,</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">  114,101,99,50,107,0,1,65,107,0,...>></span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">(xhg1@ender)10> R1 = binary_to_term(B).</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">{rec1,1,2,{rec2,"A","B",{rec3,[1],[2]},"D","E"},3,4,5}</span><br style="font-family: courier new,monospace;">
<br>Making the tuple look like the original record is something I'd like to see, but I only know of the shell that can do that. The problem is a record is a compile-time construct; the run-time data does not contains the info (except I think if compiled in debug mode, which of course you can't guarantee). Still, it solves your problem from a data point of view.<br>
<br>Hope this helps.<br><br>Ed<br><div class="gmail_quote">On Mon, Aug 11, 2008 at 12:34 AM, Vik Olliver <span dir="ltr"><<a href="mailto:vik@catalyst.net.nz">vik@catalyst.net.nz</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I have a nested record structure which is populated and then put into an<br>
mnesia database.<br>
<br>
I'd like to be able to recursively extract the structure of the record<br>
so that I can use it to repopulate another database later (from a<br>
backup, manual coding, new install or whatever).<br>
<br>
Is there a nice way to do this that leaves me with something looking<br>
very much like the original structure definitions in ASCII?<br>
<br>
Vik :v)<br>
<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://www.erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://www.erlang.org/mailman/listinfo/erlang-questions</a><br>
<br>
</blockquote></div><br><br clear="all"><br>-- <br>For every expert there is an equal and opposite expert - Arthur C. Clarke<br>
</div>