VMS Help  —  PASCAL  Input Output, General

1  –  OPEN

  The OPEN procedure opens a file and allows you to  specify  file
  characteristics.

  Syntax:

            OPEN( file_variable
                  ,[[file_name]]
                  ,[[history]]
                  ,[[record_length]]
                  ,[[access_method]]
                  ,[[record_type]]
                  ,[[carriage_control]]
                  ,[[organization]]
                  ,[[disposition]]
                  ,[[file_sharing]]
                  ,[[user_action]]
                  ,[[default_file_name]]
                  ,[[ERROR := error_recovery]] )

            OPEN( FILE_VARIABLE     := file_variable
               [[,FILE_NAME         := file_name]]
               [[,HISTORY           := history]]
               [[,RECORD_LENGTH     := record_length]]
               [[,ACCESS_METHOD     := access_method]]
               [[,RECORD_TYPE       := record_type]]
               [[,CARRIAGE_CONTROL  := carriage_control]]
               [[,ORGANIZATION      := organization]]
               [[,DISPOSITION       := disposition]]
               [[,SHARING           := file_sharing]]
               [[,USER_ACTION       := user_action]]
               [[,DEFAULT           := default_file_name]]
               [[,ERROR             := error_recovery]] )

  Before the OPEN procedure is called, the file  is  in  undefined
  mode; its mode does not change after OPEN has been executed.

  You cannot use OPEN on a file variable that is already open.

  If you use INPUT or OUTPUT, VSI  Pascal  implicitly  opens  them
  just  before their first use.  VSI Pascal implicitly opens INPUT
  with a history of READONLY.  If you choose, you  can  explicitly
  open INPUT or OUTPUT; to do this, call the OPEN procedure at any
  point in your compilation unit before  you  use  the  first  I/O
  routine on that file.

  Because the RESET, REWRITE,  and  EXTEND  procedures  implicitly
  open  files, you need not always use the OPEN procedure.  RESET,
  REWRITE, and EXTEND impose the same  defaults  as  OPEN,  except
  where noted (in the HISTORY parameter).

  You must use the OPEN procedure  to  create  a  TEXT  file  with
  fixed-length  components,  to  create  a  file  with relative or
  indexed organization, to open a file for direct or keyed access,
  or to specify a line length other than the default for a line in
  a TEXT file.

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

1.1  –  File Variable

  The 'file_variable' is the only required parameter.  It  is  the
  name  of  the  file  variable  associated  with the file that HP
  Pascal is to open.

1.2  –  File Name

  The 'file_name' is a character-string expression containing  the
  external file name.  VSI Pascal determines the default file name
  according to the environment in which you are programming.

1.3  –  History

  The 'history' is a value that indicates whether the file  exists
  or  if  VSI Pascal must create the file.  If you specify OLD and
  if VSI Pascal cannot find the file, an  error  occurs.   If  you
  specify  READONLY,  you  can  only  read  from  the file; if you
  attempt to write to the file, an error occurs.  If  you  specify
  UNKNOWN, VSI Pascal looks for an existing file but creates a new
  file if there is no  existing  file.   If  you  specify  OLD  or
  UNKNOWN  and  if  the  attempt to open the file generates a file
  protection error, VSI Pascal tries again using READONLY.

  NEW is the default for OPEN/REWRITE openings, while OLD  is  the
  default for EXTEND/RESET openings.

1.4  –  Record Length

  The 'record-length' is a positive  integer  that  specifies  the
  maximum  size  in  bytes  for a line in a TEXT file or a file of
  type  FILE  OF  VARYING.   ("Record"  length  is  equivalent  to
  "component"  length.)  The  default is 255 bytes.  For all other
  types of files, VSI Pascal ignores this parameter.

  If you do not specify a length for an existing file, VSI  Pascal
  uses the length specified at the file's creation.

  If you use OPEN to create a  sequentially  organized  file  with
  variable-length  components,  VSI  Pascal  records  the  maximum
  length of each component in the file only if you specify a value
  for the record_type field.

1.5  –  Access Method

  The 'access_method' is a  value  that  specifies  the  component
  access  method  to use.  The possible values include SEQUENTIAL,
  DIRECT, and KEYED.  The DIRECT access method  is  equivalent  to
  random  access  by  relative component number.  The KEYED access
  method is equivalent to random access by key.   The  default  is
  SEQUENTIAL.

1.6  –  Record Type

  The 'record_type'  is  a  value  that  indicates  the  component
  format.    ("Record"   format   and   "component"   format   are
  equivalent.)  The  available  values  are  FIXED   (fixed-length
  components),   VARIABLE   (variable-length  components),  STREAM
  (stream  component   format   with   either   carriage   return,
  combination   carriage  return  and  line  feed,  or  form  feed
  delimiters), STREAM_CR (stream component  format  with  carriage
  return  delimiters), and STREAM_LF (stream component format with
  line feed delimiters).

  VARIABLE is the default for new TEXT and VARYING OF CHAR,  while
  FIXED is the default for other new files.

1.7  –  Carriage Control

  The 'carriage_control' is a value that  indicates  the  carriage
  control  format  for  the file.  The value LIST indicates single
  spacing between components.  The values CARRIAGE and FORTRAN are
  equivalent and indicate that the first character of every output
  line is a carriage  control  character.   The  values  NONE  and
  NOCARRIAGE indicate that the file has no carriage control.

  LIST id the default for TEXT and VARYING OF  CHAR  files,  while
  NONE is the default for all other file types.

1.8  –  Organization

  The  'organization'  is  a  value  that   specifies   the   file
  organization.   If  you  are  accessing  an  existing  file, the
  specified  organization  must  match  the  organization  of  the
  existing file; if it does not, an error occurs.  The choices for
  this parameter  are  SEQUENTIAL,  RELATIVE,  and  INDEXED.   The
  default is SEQUENTIAL.  The parameter choices are as follows:

   o  SEQUENTIAL file organization specifies that file  components
      are  stored  one after the other, in the order in which they
      were entered  into  the  file.   VSI  Pascal  supports  this
      organization   for   files   on  disk.   This  is  the  only
      organization  supported  for  files  on  magnetic  tape,  on
      terminals, on card readers, and on line printers.

   o  RELATIVE  file  organization  consists  of   a   series   of
      fixed-length    component    positions    (cells)   numbered
      consecutively from 1 to n.  The numbered, fixed-length cells
      enable  VSI  Pascal  to  calculate  the component's physical
      position in the file.  The cell numbers are called  relative
      component numbers.  VSI Pascal supports this organization on
      disk files only.

   o  INDEXED file organization specifies that, in addition to the
      stored  components,  there exists at least a primary key and
      possibly  alternate  keys  (first  alternate   key,   second
      alternate  key,  and so forth).  VSI Pascal uses the primary
      key to store components and uses a program-specified key  or
      keys   to   retrieve   data.    VSI   Pascal  supports  this
      organization on disk files only.

1.9  –  Disposition

  The 'disposition' is a value  that  indicates  what  VSI  Pascal
  should do with the file after you close the file.

  If SAVE is specified,  the  file  is  retained.   If  DELETE  is
  specified, the file is deleted.  If PRINT is specified, the file
  is printed on a line printer and is retained.   If  PRINT_DELETE
  is  specified,  the  file  is  deleted  after it is printed.  If
  SUBMIT is specified, the file is submitted to a queue or  placed
  in  a  background  process and is retained.  If SUBMIT_DELETE is
  specified, the file is deleted after being processed.

  SAVE is the default for external files.  DELETE is  the  default
  for internal files.

1.10  –  Sharing

  The 'sharing' is a value that specifies whether  other  programs
  can  access  the  file  while  it  is open.  A value of READONLY
  indicates that other programs can read  but  not  write  to  the
  file.   This  is  the  default  value  for files with HISTORY :=
  READONLY.  READWRITE indicates that other programs can read  and
  write  to  the file when it is open.  A value of NONE denies any
  access to the file while it is open.  This is the default  value
  for all other histories.

1.11  –  User Action

  The 'user_action' is the name of a user-written routine that VSI
  Pascal calls to open the file (instead of allowing VSI Pascal to
  open  the  file  with  the  OPEN  procedure).   You  can  use  a
  user-action  routine to open the file using environment-specific
  capabilities of the I/O system underlying HP Pascal.

1.12  –  Default

  The 'default' is a string  expression  containing  default  file
  specification information.  For instance, you can use this value
  to set a default directory specification.

1.13  –  Error Recovery

  The 'error_recovery' specifies the  action  the  program  should
  take  if  an  error  occurs during execution of the routine.  By
  default, after the first error, the error message is printed and
  execution is stopped.

2  –  CLOSE

  The CLOSE procedure closes an open file.

  Syntax:

             CLOSE( file_variable
                   ,[[disposition]]
                   ,[[user_action]]
                   ,[[ERROR := error_recovery]] )

             CLOSE( FILE_VARIABLE     := file_variable
                 [[,DISPOSITION       := disposition]]
                 [[,USER_ACTION       := user_action]]
                 [[,ERROR             := error_recovery]] )

  Except for the file variable parameter, all other parameters are
  optional.  If the nonpositional parameter names are not used, as
  in the first  syntax,  the  parameters  must  be  in  the  order
  specified.  If nonpositional parameter names are used, as in the
  second syntax, the parameters can be specified in any order.

2.1  –  File Variable

  The 'file_variable' is the name of the file variable  associated
  with the file that VSI Pascal is to close.

2.2  –  Disposition

  The 'disposition' is a value  that  indicates  what  VSI  Pascal
  should do with the file after you close the file.

  If SAVE is specified,  the  file  is  retained.   If  DELETE  is
  specified, the file is deleted.  If PRINT is specified, the file
  is printed on a line printer and is retained.   If  PRINT_DELETE
  is  specified,  the  file  is  deleted  after it is printed.  If
  SUBMIT is specified, the file is submitted to a queue or  placed
  in  a  background  process and is retained.  If SUBMIT_DELETE is
  specified, the file is deleted after being processed.

  SAVE is the default for external files.  DELETE is  the  default
  for internal files.

  The disposition  value  in  the  CLOSE  procedure  supersedes  a
  disposition value in the OPEN procedure.

2.3  –  User Action

  The 'user_action' is a routine name that  VSI  Pascal  calls  to
  close  the file.  You can use a user-action routine to close the
  file using environment-specific capabilities.

2.4  –  Error Recovery

  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.

  Execution of the CLOSE procedure causes the system to close  the
  file  and,  if the file is internal, to delete it.  Each file is
  automatically closed when control passes from the block in which
  it is declared.

  You cannot close  a  file  that  has  not  been  opened  (either
  explicitly  by  the OPEN procedure, or implicitly by the EXTEND,
  RESET, or REWRITE procedure).  If you attempt to  close  a  file
  that was never opened, an error occurs.

  The  file  can  be  in  any  mode  (inspection,  generation,  or
  undefined)  before  the CLOSE procedure is called.  Execution of
  CLOSE sets the mode to undefined.
Close Help