comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » structure access using strings for tag-names
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
structure access using strings for tag-names [message #43427] Mon, 11 April 2005 05:08 Go to next message
Thomas Pfaff is currently offline  Thomas Pfaff
Messages: 15
Registered: April 2005
Junior Member
Hello everyone,

I would like to ask your opinion about the following.

Using the function CREATE_STRUCT it is possible to create a struct with
tag names defined by strings. This way it is possible to create structs
without knowing their names at compile time.

However even if I don't have to know the tag names when creating a
struct, it seems that I still have to know them, when I want to acccess
the data within that struct, because I couldn't find any procedure or
function for this purpose and struct.'tag_name' quite naturally gives a
syntax error.

Any ideas why this isn't implemented, or why it isn't necessary to have
it (would be nice to set up simple associative containers, wouldn't it)?

Best regards,


Thomas
Re: structure access using strings for tag-names [message #43428 is a reply to message #43427] Mon, 11 April 2005 05:31 Go to previous messageGo to next message
Paolo Grigis is currently offline  Paolo Grigis
Messages: 171
Registered: December 2003
Senior Member
Try this out:

;get list of tag names
tagnamelist=tag_names(!P)

;find which tag has the name "MULTI"
tagindex=where(tagnamelist EQ 'MULTI')

;access the structure
print,!p.(tagindex)

You can use struct.(0), struct.(1) etc. to access the values
in the first, second,... tag.

--Paolo


Thomas Pfaff wrote:
> Hello everyone,
>
> I would like to ask your opinion about the following.
>
> Using the function CREATE_STRUCT it is possible to create a struct with
> tag names defined by strings. This way it is possible to create structs
> without knowing their names at compile time.
>
> However even if I don't have to know the tag names when creating a
> struct, it seems that I still have to know them, when I want to acccess
> the data within that struct, because I couldn't find any procedure or
> function for this purpose and struct.'tag_name' quite naturally gives a
> syntax error.
>
> Any ideas why this isn't implemented, or why it isn't necessary to have
> it (would be nice to set up simple associative containers, wouldn't it)?
>
> Best regards,
>
>
> Thomas
Re: structure access using strings for tag-names [message #43429 is a reply to message #43427] Mon, 11 April 2005 05:15 Go to previous messageGo to next message
Antonio Santiago is currently offline  Antonio Santiago
Messages: 201
Registered: February 2004
Senior Member
Thomas Pfaff wrote:
> Hello everyone,
>
> I would like to ask your opinion about the following.
>
> Using the function CREATE_STRUCT it is possible to create a struct with
> tag names defined by strings. This way it is possible to create structs
> without knowing their names at compile time.
>
> However even if I don't have to know the tag names when creating a
> struct, it seems that I still have to know them, when I want to acccess
> the data within that struct, because I couldn't find any procedure or
> function for this purpose and struct.'tag_name' quite naturally gives a
> syntax error.

Not necessarilty. You can use the notation:

struct_name.(filed_num) to acces struct fields without knowing its names.

Bye,
Antonio.


>
> Any ideas why this isn't implemented, or why it isn't necessary to have
> it (would be nice to set up simple associative containers, wouldn't it)?
>
> Best regards,
>
>
> Thomas
Re: structure access using strings for tag-names [message #43478 is a reply to message #43427] Wed, 13 April 2005 02:29 Go to previous message
R.Bauer is currently offline  R.Bauer
Messages: 1424
Registered: November 1998
Senior Member
Thomas Pfaff wrote:
> Hello everyone,
>
> I would like to ask your opinion about the following.
>
> Using the function CREATE_STRUCT it is possible to create a struct with
> tag names defined by strings. This way it is possible to create structs
> without knowing their names at compile time.
>
> However even if I don't have to know the tag names when creating a
> struct, it seems that I still have to know them, when I want to acccess
> the data within that struct, because I couldn't find any procedure or
> function for this purpose and struct.'tag_name' quite naturally gives a
> syntax error.
>
> Any ideas why this isn't implemented, or why it isn't necessary to have
> it (would be nice to set up simple associative containers, wouldn't it)?
>
> Best regards,
>
>
> Thomas


You could use the routine tag_position from our library.

test=create_struct('A',1,'B',2)
print, test.(tag_position(test,'A'))


http://www.fz-juelich.de/icg/icg-i/idl_icglib/idl_source/idl _html/dbase/tag_position_dbase.pro.html

cheers
Reimar

--
Reimar Bauer

Institut fuer Stratosphaerische Chemie (ICG-I)
Forschungszentrum Juelich
email: R.Bauer@fz-juelich.de
------------------------------------------------------------ -------
a IDL library at ForschungsZentrum Juelich
http://www.fz-juelich.de/icg/icg-i/idl_icglib/idl_lib_intro. html
============================================================ =======
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: dereferencing a pointer to a complex structure?
Next Topic: problem with xroi continued....

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 16:07:59 PDT 2025

Total time taken to generate the page: 2.79927 seconds