If what you need is a way to access record fields by name during runtime, I have a module called <font class="Apple-style-span" face="'courier new', monospace">dynarec</font> in a project I'm working on that will very easily allow you to do it. You can find it here: <a href="https://github.com/jcomellas/mlapi/blob/master/src/dynarec.erl">https://github.com/jcomellas/mlapi/blob/master/src/dynarec.erl</a><br>
<br>Basically, what you do is add the following preprocessor directive to the module where you keep your records:<div><br></div><div><font class="Apple-style-span" face="'courier new', monospace">-compile({parse_transform, dynarec}).<font class="Apple-style-span" color="#999988"><span class="Apple-style-span" style="font-size: 12px; line-height: 16px; white-space: pre; "><i><br>
</i></span></font></font><br>And then on that module you'll get the following functions automatically inserted for all the records (and their fields) that were defined in the module:</div><div><br></div><div><div><font class="Apple-style-span" face="'courier new', monospace">get_value(field_name, Record) -></font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">    Record#record_name.field_name.</font></div><div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div>
<font class="Apple-style-span" face="'courier new', monospace">set_value(field_name, Value, Record) when is_record(Record, record_name) -></font></div><div><font class="Apple-style-span" face="'courier new', monospace">    Record#record_name{field_name = Value}.</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div><font class="Apple-style-span" face="'courier new', monospace">records() -></font></div><div><font class="Apple-style-span" face="'courier new', monospace">    [record_name1, record_name2, ...].</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div><font class="Apple-style-span" face="'courier new', monospace">fields(record_name) -></font></div><div><font class="Apple-style-span" face="'courier new', monospace">    [field_name1, field_name2, ...].</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div><font class="Apple-style-span" face="'courier new', monospace">new_record(record_name) -></font></div><div><font class="Apple-style-span" face="'courier new', monospace">    #record_name{}.</font></div>
<div><br></div><div>Hope it helps.</div><div><br></div><div>Juanjo</div><div><br></div><div><br></div><br><div class="gmail_quote">On Fri, Nov 11, 2011 at 5:31 AM, Max Bourinov <span dir="ltr"><<a href="mailto:bourinov@gmail.com">bourinov@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hello Erlangers,
<div><br></div><div>What is a best way to serialize record, modify record's code and then deserialize it back?</div><div><br></div><div>I seen <a href="https://github.com/esl/parse_trans" target="_blank">https://github.com/esl/parse_trans</a>. Is this what I need or there are another options?</div>


<div><br></div><div>Maybe I better use another data structure?</div><div><br></div><div>p.s. Of course performance is always important.</div><div><br></div><div>Best regards,</div><div>Max</div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>