Accessing Files Programmer's Guide (32650-90885)

Chapter 11 145
Accessing a File Using Mapped Access
Opening a File Mapped
a_record : packed array [1..80] of char;
end;
file_t = array [1..50000] of record_t;
{** define a 4,000,000 byte array **}
var
access,domain : integer;
dummy : shortint;
file_name : packed array [1..20] of char;
file_number : integer;
file_ptr :^file_t; {** pointer to the file **}
filesize : integer;
index, rec : integer;
create_domain_perm : integer;
read_write_access : integer;
domain_old : integer;
status : record
case integer of
0: (all: integer);
1: (info: shortint;
subsys: shortint);
end;
const
file_name_option = 2;
domain_option = 3;
filesize option = 35;
short_mapped_option = 18;
access_type_option = 11;
begin
{** initialize item values for the HPFOPEN **}
file_name := '%EXAMPLE%';
create_domain_PERM := 4;
domain_OLD := 3;
filesize := 15265;
read_write_access := 4;
{** create a short-mapped file **}
HPFOPEN (
file_number, status,
file_name_option, file_name
domain_option,create_domain_PERM,
filesize option, filesize,
short_mapped_option, file_ptr,
access_type_option, read_write_access,
);
{** put some data into the file **}
for rec := 1 to 100 do
for index := 1 to 80 do
file_ptr^[rec].a_record[index] :=
Chr (((rec - 1) Mod 26) + 65);
{** set the logical record pointer **}
FPOINT (file_number, 33);
FCONTROL (file_number, 6, dummy); {** set the EOF **}
FCLOSE (file_number, 0, 0); {**close the file **}