Reading From a Magnetic Tape File [ Accessing Files Programmer's Guide ] MPE/iX 5.0 Documentation
Accessing Files Programmer's Guide
Reading From a Magnetic Tape File
Example 9-4 is an HP Pascal/iX code segment that reads records
sequentially from an unlabeled magnetic tape file (indicated by variable
tape_file_num) and uses FWRITE to write them to a disk file (indicated by
variable disk_file_num). The operation is performed in a loop. The loop
ends when the FREAD intrinsic encounters an EOF marker on the tape
(indicating the end of the tape file).
Example 9-4. Reading From a Magnetic Tape File
procedure copy_tape_to_disk_file;
var
record : packed array [1..30] of char; {declare record }
end_of_file : boolean; {declare exit condition }
record_length : shortint; {size of record read }
length : shortint; {declare parameter }
control_code : 0..65535; {declare parameter }
begin
end_of_file := false; {initialize exit condition}
control_code := 0; {initialize to default }
length := -80; {size of record to be copied}
repeat {loop until exit condition}
record_length := FREAD (tape_file_num, record, length);
if ccode = ccl then
handle_file_error (tape_file, 3)
else
if ccode = ccg then {FREAD returns ccg if EOF }
end_of_file := true {exit condition encountered }
else
begin
FWRITE( disk_file_num, {identity returned by HPFOPEN }
record, {read from tape_file_num }
record_length, {actual size of record }
control_code {default }
);
if ccode <> cce then {check condition code for error}
handle_file_error (disk_file, 5);
end
entil end_of_file;
end; {end procedure }
If an error is encountered by either FREAD or FWRITE, procedure
handle_file_error is invoked. For more information about FREAD
intrinsic parameters, refer to the MPE/iX Intrinsics Reference Manual
(32650-90028). For more information about the FWRITE intrinsic, refer to
chapter 8, "Writing to a File". In appendix A, "HP Pascal/iX Program
Examples", example A-1 uses a similar procedure to copy records from a
tape file to a disk file.
MPE/iX 5.0 Documentation