Guardian Programmer's Guide

Table Of Contents
Communicating With Magnetic Tape
Guardian Programmer’s Guide 421922-014
12 - 103
Accessing an Unlabeled Tape File: An Example
! Write records to file. This loop prompts the user for
! each additional record you want to write:
DO BEGIN
! Blank the log record structure:
RECORD^POINTER[0] ':=' " ";
RECORD^POINTER[1] ':=' RECORD^POINTER[0] FOR 255;
! Prompt user for date:
PROMPT^AGAIN:
PRINT^BLANK;
SBUFFER ':=' "Enter Today's Date (mmddyyyy): "
-> @S^PTR;
CALL WRITEREADX(TERMNUM,SBUFFER,@S^PTR '-' @SBUFFER,
BUFSIZE,COUNT^READ);
IF <> THEN CALL FILE^ERRORS(TERMNUM);
IF COUNT^READ <> 8 THEN GOTO PROMPT^AGAIN;
! Put date into record structure:
LOG^RECORD.DATE ':=' SBUFFER[0] FOR (COUNT^READ);
! Prompt user for comments:
SBUFFER ':=' "Please Enter Your Comments: " -> @S^PTR;
CALL WRITEREADX(TERMNUM,SBUFFER,@S^PTR '-' @SBUFFER,
BUFSIZE,COUNT^READ);
IF <> THEN CALL FILE^ERRORS(TERMNUM);
! Put comments into record structure:
LOG^RECORD.COMMENTS ':=' SBUFFER[0] FOR COUNT^READ;
! Put sequence number in record structure:
LOG^RECORD.SEQ^NUM := SEQ^NUM;
! Pack record into record block:
CASE INDEX OF
BEGIN
0 -> LREC0 ':=' LOG^RECORD FOR 256;
1 -> LREC1 ':=' LOG^RECORD FOR 256;
2 -> LREC2 ':=' LOG^RECORD FOR 256;
3 -> LREC3 ':=' LOG^RECORD FOR 256;
OTHERWISE -> CALL PROCESS_STOP_;
END;