record_info/2
Mickael Remond
mikl@REDACTED
Thu Jun 24 17:22:47 CEST 1999
Hi,
I get a compile time error message when trying to use record_info/2 outside of the 'mnesia:create_table' context.
The error message is :
illegal record info
What I am trying to do is get the list of fields of an object :
(The aim of the function is to replace a fields value by its name, without specifically knowing what kind of record I am manipulating)
replace(Attr,Value, Obj) ->
%% Get record_name from Object
Record_name = element(1,Obj),
%% Get list of fields
List = record_info(fields, Record_name),
%% Get attribute position
%% +1 because of the table name at first position
Pos = pos(Attr,List) + 1,
case Pos of
0 ->
{error, attribute_does_not_exist_in_record};
N ->
Result = setelement(Pos, Obj, Value),
{ok,Result}
end.
Can you figure out what I am doing wrong or what I am misunderstanding ?
Thanks in advance for your help.
--
Mickael Remond
mikl@REDACTED
ICQ : 2265396
More information about the erlang-questions
mailing list