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

Home » Public Forums » archive » Test if variable is a string
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: Test if variable is a string [message #34114 is a reply to message #34025] Sun, 16 February 2003 12:58 Go to previous messageGo to previous message
MKatz843 is currently offline  MKatz843
Messages: 98
Registered: March 2002
Member
Here's a handy little function I've been using for years.
var_type.pro
I think I added a number of new type names back in 2001.
If RSI adds more types in the future, they'll probably
be appended to the list rather than change the existing list.
In that case, you'll have to modify the list.

So the function returns the type as a number. But if
you set the /string keyword, you'll get a string containing
the name of the type.

For example:
IDL> print, var_type(10L)
3
IDL> print, var_type(10L, /s)
Longword Integer

;+
; IDL function: var_type.pro
; for a given input variable, this function returns
; the type of that variable. The returned value is a number 0-15
; similar to the second-to-last field in the "size" function,
; or if the keyword "string" is used, a string.
;-

function var_type, a, string=string

s = ['Undefined','Byte','Integer','Longword
Integer','Floating-point', $
'Double-precision floating','Complex
floating','String','Structure', $
'Double-precision complex','Pointer','Object reference', $
'Unsigned Integer','Unsigned Longword Integer','64-bit
Integer',$
'Unsigned 64-bit Integer']

return, Keyword_set(string) ? s(size(a, /type)):size(a, /type)
end

I also have a closely related function called defined.pro that tests
true-or-false, if a given variable is defined or not. It also uses
size(x, /type), that's why I'm including it here.

;+
; IDL function: defined.pro
; For a given input variable, this function returns
; 1b if the variable is defined
; 0b if the variable is undefined
;-

function defined, a
return, (size(a, /type) NE 0)
end


Hope this helps,

M. Katz
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Re: Printing line number of an error
Next Topic: UNIQ without SORT

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

Current Time: Fri Oct 10 00:21:47 PDT 2025

Total time taken to generate the page: 0.16238 seconds