Re: Find all user-defined structure definitions [message #84591] |
Tue, 30 July 2013 07:17  |
Helder Marchetto
Messages: 520 Registered: November 2011
|
Senior Member |
|
|
On Tuesday, July 30, 2013 4:08:17 PM UTC+2, David Fanning wrote:
> Helder writes:
>
>
>
>> I realize that one can find all the structure definitions using help:
>
>>
>
>> HELP, /STRUCTURES
>
>>
>
>> However, I get 469 element string array out (with the output keyword) after a .reset_session. I then have to search through for my structure. This looks ugly to me.
>
>>
>
>> Is there an easier way to know if a structure has been defined already?
>
>> If I use Tag_Names() or N_Tags(), I get an error if it has not been defined.
>
>>
>
>> So far my solution looks like:
>
>>
>
>> Help, /Structures, Output=HelpOut
>
>> Index=Where(StrPos(HelpOut,'MYSTRUCTURE') GE 0, Count)
>
>> IF Count EQ 0 THEN print, 'create structure'
>
>
>
> Why do you care if your structure has been defined already?
>
>
>
> Cheers,
>
>
>
> David
>
>
>
>
>
>
>
> --
>
> David Fanning, Ph.D.
>
> Fanning Software Consulting, Inc.
>
> Coyote's Guide to IDL Programming: http://www.idlcoyote.com/
>
> Sepore ma de ni thue. ("Perhaps thou speakest truth.")
Well, I have this big program that calls many times an object where a structure is defined in the init method. If this object is used within this big program, the structure is already defined and can simply be used in the definition of the property, if not it has to be redefined.
I don't like the idea to redefine it anyway... I find it cleaner to define it once and if it is not defined, I redefine it.
I just realized, I can use the object definition. In principle I can define my structures i a file named MyStructure__Define and then simply call {MyStructure} and I'm sure this will be defined anywhere in the same way. Have to check about speed though... Might search through directories for a while
|
|
|
|
|