[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: include files in IDL programs

Randall Skelton wrote:

> Hello all,
> This is a longshot but is there any way to have an 'include file' in IDL.
> i.e. I have a data structure which is rather complicated (and big in type)
> and I don't want to see it in every program/subroutine that I write.  Is
> there anyway just to have it included with a simple '#include blah.pro' or
> somthing similar?
> Thanks in advance,
> Randall

If you have a file containing code (as batch), you can use the '@filename'
to include that codes in your program.
If the case of strucured data type, it coul be better to use the __define

For example suppose you have the structure:

struct = {structTest, $
                        pippo: 0L,$
                        pluto: lonarr(5)}

In the first case   if you have the file "struct.definition",
in your code you can insert that lines using:    @struct.definition
It works as "#define " of C. IDL simply replace the @struct.definition with
the contents of the file.

In the second case you can have the file "structTest__define.pro", containing
the declaration of your struct:

pro structTest__define

    struct = {structTest, $
                        pippo: 0L,$
                        pluto: lonarr(5)}


After structTest__define.pro compilation, in your code you can use the

myStruct = {structTest}.

The difference between the two techniques is that in the first case struct is
your variable; in the second one you define a "new data type" structTest that
you can use to "declare" all variables you need:

myStruct1 = {structTest}
myStruct2 = {structTest}

myStruct1 and myStruct2 are two different variables of the same type.