VMS Help  —  PASCAL  Input Output, Misc
  The miscellaneous routines are generally used when dealing  with
  sequential  access  files.   In  some cases, they can be used on
  direct or keyed access files.

1  –  EOF

  The EOF (end  of  file)  function  indicates  whether  the  file
  pointer  is  positioned  after  the  last component in a file by
  returning a Boolean value.

  Syntax:

     EOF[[( file_variable )]]

  The 'file_variable' is the name of the file variable  associated
  with  the  input  file.   If  you omit the name of the file, the
  default is INPUT.

  The file can be in either inspection or generation  mode  before
  EOF  is called; however, end-of-file must be defined.  The input
  operations  GET,  RESET,  and  FINDK  are  guaranteed  to  leave
  end-of-file  defined.   The  file mode does not change after EOF
  has been executed.

  EOF returns TRUE when the file pointer is positioned  after  the
  last  component  in  the  file,  and  returns  FALSE  up  to and
  including the time when the last component of the input file  is
  read into the file buffer.  You must attempt to retrieve another
  file component after the last to determine whether the  file  is
  positioned at end-of-file.

  When EOF is tested for a file with relative organization  opened
  for  direct  access,  the  result  is  TRUE  if  the  file is in
  inspection mode and the last GET or RESET  operation  positioned
  the  file beyond the last existing component.  If the file is in
  generation or undefined mode, the result of EOF is undefined.

  When EOF is tested for a file with indexed  organization  opened
  for  keyed  access,  the  result  is  TRUE  if  the  file  is in
  inspection mode and  the  last  FINDK,  GET,  RESET,  or  RESETK
  operation positioned the file beyond the last component with the
  current key number.  Successful attempts at FINDK,  GET,  RESET,
  and  RESETK  cause  EOF  to  be  FALSE.   If  the file is not in
  inspection mode, EOF is undefined.

  If you attempt to read a file after EOF becomes TRUE,  an  error
  occurs.

  See the "HP Pascal Language Reference  Manual"  for  a  complete
  description of the EOF function.

2  –  STATUS

  The STATUS function indicates the status of a file following the
  last operation performed on it.

  Syntax:

     STATUS( file_variable )

  The 'file_variable' is the name of the file variable  associated
  with the file to be tested.

  The file can be in any mode before STATUS is called;  unless  an
  error  occurs,  STATUS  does  not  change  the  file  mode  upon
  execution.

  The  STATUS  function  returns  integer  codes  indicating   the
  previous  operation's  effect  on the file.  If the operation is
  successful, 0 is returned.  If end-of-file is encountered, -1 is
  returned.   If  an  error  is encountered, a positive integer is
  returned.  (The actual  number  is  environmental  specific  and
  indicates the exact error that occured.)

  A test by the STATUS function on  a  TEXT  file  causes  delayed
  device  access  to  occur, thus filling the file buffer with the
  next file component.  Therefore,  EOF,  EOLN,  UFB,  and  STATUS
  never  return  an  error  code  following  a  successful  STATUS
  function call.

  See the "HP Pascal Language Reference  Manual"  for  a  complete
  description of the STATUS function.

3  –  TRUNCATE

  The TRUNCATE procedure indicates that the current file component
  and all components following it are to be deleted.  TRUNCATE can
  only be used on a file that has sequential organization.

  Syntax:

     TRUNCATE( file_variable [[, ERROR := error-recovery]] );

  The 'file_variable' is the name of the file variable  associated
  with the file to be truncated.

  The 'error-recovery' specifies the action  to  be  taken  if  an
  error occurs during execution of the routine.  By default, after
  the first error, the error message is printed and  execution  is
  stopped.

  The file must be in inspection mode before TRUNCATE  is  called.
  After  the  procedure  has  been  executed,  the  mode is set to
  generation so that you can write to the file.

  After the appropriate components have  been  deleted,  the  file
  remains  positioned  at the new end-of-file, but the file buffer
  itself is undefined.  Thus, EOF and UFB are both set to TRUE.

  See the "HP Pascal Language Reference  Manual"  for  a  complete
  description of the TRUNCATE procedure.

4  –  UFB

  The UFB (undefined file buffer) function returns a Boolean value
  that  indicates  whether  the  last file operation gave the file
  buffer an undefined status.

  Syntax:

     UFB( file_variable )

  The 'file_variable' is the name of the file variable  associated
  with the file whose buffer is being tested.

  The file can be in any mode before UFB is called;  execution  of
  UFB does not change the file mode.

  UFB tests the effect of the last I/O operation done to the file.
  UFB  returns  FALSE  if a successful GET, FIND, FINDK, RESET, or
  RESETK operation has filled the file buffer.  GET, FIND,  FINDK,
  RESET,  and  RESETK  procedure  calls  that do not fill the file
  buffer set UFB to TRUE.

  UFB  also  returns  TRUE  after  DELETE,  EXTEND,  LOCATE,  PUT,
  REWRITE,  TRUNCATE, and UPDATE procedures have left the contents
  of the file buffer unknown.

  Assigning a new value to the  file  buffer  with  an  assignment
  statement does not change the value of UFB.

  See the "HP Pascal Language Reference  Manual"  for  a  complete
  description of the UFB function.

5  –  UNLOCK

  The UNLOCK procedure releases the  current  file  component  for
  access by other processes.

  Syntax:

     UNLOCK( file_variable [[, ERROR := error-recovery]] );

  The 'file_variable' is the name of the file variable  associated
  with the file whose component is to be unlocked.

  The 'error-recovery' specifies the action  to  be  taken  if  an
  error occurs during execution of the routine.  By default, after
  the first error, the error message is printed and  execution  is
  stopped.

  The file must be in inspection mode before UNLOCK is called;  it
  remains in inspection mode after UNLOCK has executed.

  If the component at which the file  pointer  is  positioned  has
  been locked, the UNLOCK procedure releases it.
Close Help