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

Re: openr and /get_lun



you could always jump over the access of the file with a GOTO...

pro test_lun_free
	
  filename = 'c:\dne.dat'

  openr, unit, filename, /get_lun, error=err
      IF (err NE 0) then goto, bad_file
      ;Insert your read statement here
      ;Insert your read statement here

      print, 'the file exists - lun#', strcompress(string(unit),
/remove_all),' set'
  free_lun, unit

      ;Insert the rest of your program here

  bad_file:If err ne 0 then print, 'lun not set'
		
end

- i think this is what you want
leon

On 14 Apr 2000 16:36:04 -0500, Craig Markwardt
<craigmnet@cow.physics.wisc.edu> wrote:

>
>I have noticed that the use of /GET_LUN and ERROR keywords to openr is
>not as helpful as I would have hoped.  Do other have this experience?
>The problem is that when an error occurs, it is hard to know whether
>the file unit was "gotten" or not.
>
>For example:
>
>pro test1
>  openr, unit, filename, /get_lun, error=err
>  free_lun, unit
>end
>
>If there was an error, then it is possible that UNIT was never set,
>and is hence undefined.  FREE_LUN doesn't take undefined variables.
>
>If there is error checking to do, I don't know exactly what it should
>be.  So I find myself explicitly doing this instead:
>
>pro test2
>  get_lun, unit
>  openr, unit, filename, error=err
>  free_lun, unit
>end
>
>Comments?
>
>Craig
>
>-- 
>--------------------------------------------------------------------------
>Craig B. Markwardt, Ph.D.         EMAIL:    craigmnet@cow.physics.wisc.edu
>Astrophysics, IDL, Finance, Derivatives | Remove "net" for better response
>--------------------------------------------------------------------------

-------------------------
Leon Majewski

Remote Sensing & Satellite Research Group
Curtin University of Technology, Perth, Australia

email: majewski@ses.curtin.edu.au