A.8 Sequential and Direct Files
kinds of access to external files are defined in this subclause: sequential
and direct access
. The corresponding file types and
the associated operations are provided by the generic packages Sequential_IO
and Direct_IO. A file object to be used for sequential access is called
a sequential file
, and one to be used for direct access is called
a direct file
. Access to stream file
s is described in A.12.1
For sequential access, the file
is viewed as a sequence of values that are transferred in the order of
their appearance (as produced by the program or by the external environment).
When the file is opened with mode In_File or Out_File, transfer starts
respectively from or to the beginning of the file. When the file is opened
with mode Append_File, transfer to the file starts after the last element
of the file.
direct access, the file is viewed as a set of elements occupying consecutive
positions in linear order; a value can be transferred to or from an element
of the file at any selected position. The position of an element is specified
by its index
, which is a number, greater than zero, of the implementation-defined
integer type Count. The first element, if any, has index one; the index
of the last element, if any, is called the current size
; the current
size is zero if there are no elements. The current size is a property
of the external file.
An open direct file has a current
, which is the index that will be used by the next read or write
operation. When a direct file is opened, the current index is set to
one. The current index of a direct file is a property of a file object,
not of an external file.