Re: request for change of boolean

new topic     » goto parent     » topic index » view thread      » older message » newer message

Kat wrote:
> 
> 
> Is it possible to change how boolean expressions are evaluated such that only
> values greater than 0 pass this test? :

Why? Is there a compelling reason to change the current implementation? For
example, does it cause your programs to fail or run slower?

 
> }}}
<eucode>
> readfile = open(flagfilename,"r")
> if readfile then
> -- it's there, process it
> end if
> </eucode>
{{{


You should code this as ...

  if readfile < 0 then ...

Would that be a problem?

> Currently, if readfile = -1 , it evaluates to TRUE, when in fact
> the readfile was not opened.

The valid values that can be returned from open() are all positive integers
greater than 2. The values 0, 1, and 2 are pre-opened files for stdin, stdout,
and stderr. Thus negative values are returned to indicate that the file could not
be opened. A positive value would actually imply that it opened just fine.

Alternatively you could write a new function ...
function OpenFile(sequence name, sequence type)
     integer fh

     fh = open(name, type)
     if fh < 0 then
         rc = 0
     else 
         rc = 1
     end if

     return {rc, fh}
  end function

  object readfile
  readfile = OpenFile(flagfilename,"r")
  if readfile[1] then
    -- it's there, process it
  end if


But I can't see that that is much of an improvement. Maybe I'm wrong though.

-- 
Derek Parnell
Melbourne, Australia
Skype name: derek.j.parnell

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu