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

Home » Public Forums » archive » Re: get variables name
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: get variables name [message #19538 is a reply to message #19535] Wed, 05 April 2000 00:00 Go to previous messageGo to previous message
John-David T. Smith is currently offline  John-David T. Smith
Messages: 384
Registered: January 2000
Senior Member
David Fanning wrote:
>
> R.Bauer (R.Bauer@fz-juelich.de) writes:
>
>> I like to know the name of a variable which is submitted as input to a
>> procedure
>>
>> e.g
>>
>> pro test,var
>> help,var
>> end
>>
>> a=1
>> test,a
>>
>> Is it possible to get inside test the information that test was called
>> with a.
>
> My life is totally out of control at the moment, so I haven't
> had the opportunity to write this up for my web page, but
> here is part of a correspondence I recently received from
> Paul Woodford, an IDL user, concerning the undocumented
> ROUTINE_NAMES function:
>
> routine_names(variables=0) - variable names at current level
> routine_names(variables=1) - variable names at main level
> routine_names(variables=2) - variable names at one level down from main
> routine_names(variables=-1) - variable names at one level up from current
> routine_names(variables=-2) - variable names at two levels up from current
>
> But wait, that's not all... Take a look at how routine_names is used in
> gethelp - you can use routine_names to actually fetch a variable from a
> different level. For instance, if you have a variable named 'blah' one
> level up from your current level, you can get it using
>
> blah_here = routine_names('blah', fetch=-1)
>
< wise cautionary matter clipped>

But wait... that'still not all!

By poking around in the library, I found:

pro foo,a
print,routine_names(a,/ARG_NAME)
end

IDL> foo,x
X

pretty cool. And this is the coolest... I've been asking for this for years...
easy to abuse, but oh so useful for sending variables to the command-line and
widget program...

Try this:

pro foo,a
g=12
print,routine_names("gvar",g,STORE=1)
end

IDL> foo
1
IDL> help
% At $MAIN$
GV INT = 12

Cool! This is the symmetric form of fetch, and I guess just returns 1 on
success. Finally I can create variables for later storage on the command line
within widget apps! Or what I mean to say... hmmph... I mean... don't play with
matches... bad dog...

JD


--
J.D. Smith |*| WORK: (607) 255-5842
Cornell University Dept. of Astronomy |*| (607) 255-6263
304 Space Sciences Bldg. |*| FAX: (607) 255-5875
Ithaca, NY 14853 |*|
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: object graphics axis text
Next Topic: Re: pointer to structures

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

Current Time: Mon Dec 01 01:19:39 PST 2025

Total time taken to generate the page: 0.48153 seconds