Guardian Programmer's Guide

Table Of Contents
Communicating With Magnetic Tape
Guardian Programmer’s Guide 421922-014
12 - 46
Reading From a File on a Multiple-File Labeled
Tape Volume
3. Create the DEFINE using the DEFINEADD procedure.
The following example creates a DEFINE called =FILE^FIVE^READ. It describes the
fifth file on a labeled tape. This tape uses IBM labels.
!Turn on DEFINE mode:
NEW^VALUE := 1;
ERROR := DEFINEMODE(NEW^VALUE,
OLD^VALUE);
IF ERROR > 0 THEN ...
!Set the CLASS attribute to TAPE:
ATTRIBUTE^NAME ':=' "CLASS ";
ATTRIBUTE^VALUE ':=' "TAPE" -> @S^PTR;
ERROR := DEFINESETATTR(ATTRIBUTE^NAME,
ATTRIBUTE^VALUE,
@S^PTR '-' @ATTRIBUTE^VALUE,
DEFAULT^NAMES);
IF ERROR <> 0 THEN ...
!Set the LABELS attribute to IBM:
ATTRIBUTE^NAME ':=' "LABELS ";
ATTRIBUTE^VALUE ':=' "IBM" -> @S^PTR;
ERROR := DEFINESETATTR(ATTRIBUTE^NAME,
ATTRIBUTE^VALUE,
@S^PTR '-' @ATTRIBUTE^VALUE,
DEFAULT^NAMES);
IF ERROR <> 0 THEN ...
!Set the VOLUME attribute to MYVOL:
ATTRIBUTE^NAME ':=' "VOLUME ";
ATTRIBUTE^VALUE ':=' "MYVOL" -> @S^PTR;
ERROR := DEFINESETATTR(ATTRIBUTE^NAME,
ATTRIBUTE^VALUE,
@S^PTR '-' @ATTRIBUTE^VALUE,
DEFAULT^NAMES);
IF ERROR <> 0 THEN ...
!Set the FILEID attribute to FILE^FIVE:
ATTRIBUTE^NAME ':=' "FILEID ";
ATTRIBUTE^VALUE ':=' "FILE^FIVE" -> @S^PTR;
ERROR := DEFINESETATTR(ATTRIBUTE^NAME,
ATTRIBUTE^VALUE,
@S^PTR '-' @ATTRIBUTE^VALUE,
DEFAULT^NAMES);
IF ERROR <> 0 THEN ...
!Set the FILESEQ attribute to 5:
ATTRIBUTE^NAME ':=' "FILESEQ ";
ATTRIBUTE^VALUE ':=' "5";
ATTRIBUTE^LEN := 1;
ERROR := DEFINESETATTR(ATTRIBUTE^NAME,
ATTRIBUTE^VALUE,
ATTRIBUTE^LEN,