HPlogo Accessing Files Programmer's Guide > Chapter 9 Reading from a File

Reading a File Label from a Labeled Tape File

MPE documents

Complete PDF
Table of Contents
Index

E0300 Edition 6 ♥
E0692 Edition 5

The FREADLABEL intrinsic is used to read a user-defined label located on a labeled magnetic tape file or a labeled disk file. To read a user-defined header label, the FREADLABEL intrinsic must be called before the first FREAD is issued for the file. Execution of the first FREAD causes MPE/iX to skip past any unread user-defined header labels.

Example 9-5 is an HP Pascal/iX code segment that reads a user label located in the user-defined label portion of data_file, a labeled magnetic tape file. The label is printed to `STDLIST (identified by list_file) using the FWRITE intrinsic. Assume that both data_file and list_file have been opened elsewhere with calls to HPFOPEN/FOPEN.

Example 9-5. Reading a User Label from a Labeled Magnetic Tape File

  procedure read_user_label;

  var
     label          : packed array [1..80] of char;
                                               {holds label from file}
     length         : shortint;                    {length of label  }
     control_code   : 0..65535;                   {required by FWRITE}

  begin
     length := 40                           {required ANSI label size}
     control_code := 0                             {set to default   }
     FREADLABEL ( data_file,                {file number of tape file}
                  label,                           {returns label    }
                  length                      {# of halfwords to read}
                );
     if ccode <> cce then handle_file_error (data_file);
     FWRITE  ( list_file,                       {output to $STDLIST  }
               label,                       {label read by FREADLABEL}
               length,                          {length of label     }
               control_code                     {default condition   }
             );
     if ccode <> cce then handle_file_error (list_file);
  end;                                           {end read_user_label}

If an error is encountered by either FREADLABEL or FWRITE, procedure handle_file_error is invoked. For more information about FREADLABEL intrinsic parameters, refer to the MPE/iX Intrinsics Reference Manual. 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-2 uses a similar procedure to read a user label from a labeled magnetic tape file.




Reading From a Magnetic Tape File


Chapter 10 Updating a File