File Type
Formal Definition
A type that provides access to
objects containing a sequence of values of a given type. File types
are typically used to access files in the host system environment.
The value of a file object is the sequence of values contained in the
host system file.
Simplified Syntax
type type_name is
file of type;
Description
The file type is used to
define objects representing files in the host environment. The value
of a file object is the sequence of values contained in the physical file.
The type mark in the file declaration defines the subtype of the
values contained in the file. The subtype can be either constrained
or unconstrained. The subtype cannot be based on a file type or an
access type. If a composite type is used, the elements cannot be of
an access type and in case of arrays, it must be a one-dimensional
array. Example 1 shows several file type declarations.
When a file type is
declared, several operations on objects of this type are implicitly
defined. The list of the operations includes: opening a file, closing
a file, reading from a file, writing to a file and checking the end
of a file. For a file type declared as
type FT is
file of SomeType;
the implicit operations are as follows:
procedure FILE_OPEN ( file
anonymous: FT;
External_Name: in STRING;
Open_Kind: in FILE_OPEN_KIND
:= READ_MODE );
procedure FILE_OPEN (
Status: out FILE_OPEN_STATUS;
file anonymous: FT;
External_Name: in STRING;
Open_Kind: in FILE_OPEN_KIND
:= READ_MODE );
procedure FILE_CLOSE ( file
anonymous: FT );
procedure READ ( file
anonymous: FT; Value: out
SomeType );
procedure WRITE ( file
anonymous: FT; Value: in
SomeType );
function ENDFILE ( file
anonymous: FT ) return BOOLEAN;
Examples
Example 1
type POSITIVE_FILE is file of POSITIVE;
type BIT_VECTOR_FILE is file of
BIT_VECTOR ( 0 to 7 );
type STRING_FILE is file of STRING;
Here, the first type declares a file of positive numbers, the second
one - a file of 8-bit wide vectors of bits, and the third one - a
file containing an indefinite number of strings of arbitrary length.
Important Notes
|