[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Locating a (bitmap) file
Dave Greenwood wrote:
> Using IDL 5.3 and Windows NT I've created an IDL windows application
> (thanks to the kind folks who responded to my recent posting on the
> subject). My application uses a couple of color bitmap labels which
> are stored as .bmp files. The application will be used on multiple
> systems, possibly in a separate location on each system. I'd prefer
> not to hard code the location of the .bmp files. The question is how?
> I suppose I could use findfile to search candidate locations, but
> that still requires advance knowledge of each system where the
> application is used.
> I wouldn't mind requiring the .bmp and .sav files to be in the same
> directory if I could somehow find out from within my application
> where the .sav file is located. Is that possible? (I tried !DIR but
> it points to some place in the RSI distribution.)
> Is there a way to return a color bitmap from an IDL function like you
> can with a b/w bitmap? That way I could compile the function and
> store it in the save file.
> Since I'm not particularly experienced with IDL, I'm hoping that I've
> missed some (potentially obvious) way of dealing with this.
Assuming that your IDL directory (say /usr/idl_app) is in the IDL path, you could do
something like (on a unix system at least):
pos = STRPOS( !PATH, '/usr/idl_app/bmp_datafiles' )
begin_pos = RSTRPOS( !PATH, ':', pos ) + 1
end_pos = STRPOS( !PATH, ':', pos ) - 1
file_path = STRMID( !PATH, begin_pos, end_pos - begin_pos + 1 ) + '/'
file = file_path + 'no1.bmp'
This does require the initial hardcoding of the location, but if it's in a generically
named directory, I don't see a problem with that (like most things in unix default to
/usr/bin or /usr/local/bin etc..).
Alternatively, you could stick your code and data in a subdirectory of the IDL
distribution (like the old /user_contrib directory). Either way it will be a bit messy
since you have to take into account the different directory delimiters of different
systems, mac unix, windoze, vms...oops that's right, no more vms soon. :o(
Paul van Delst Ph: (301) 763-8000 x7274
CIMSS @ NOAA/NCEP Fax: (301) 763-8545
Rm.207, 5200 Auth Rd. Email: firstname.lastname@example.org
Camp Springs MD 20746