Guardian Programmer's Guide

Table Of Contents
Formatting and Manipulating Character Data
Guardian Programmer’s Guide 421922-014
19 - 30
List-Directed Formatting
!------------------------------------------------------------
! Procedure to format list-directed input.
!------------------------------------------------------------
PROC FORMAT^INPUT;
BEGIN
! Literals and variables used by FORMATDATA:
LITERAL BUFFER^LENGTH = 80; !length of one input buffer
STRUCT BUF^REF(*); !structure definition for
BEGIN ! an input buffer
STRING BYTES[0:BUFFER^LENGTH - 1];
END;
LITERAL NUM^BUFFERS = 2; !max number of input
! buffers
STRUCT .BUFFERS(BUF^REF) [0:NUM^BUFFERS - 1];!data
INT .BUFFER^ELEMENTS [0:NUM^BUFFERS - 1]; ! structures
! for input buffers
STRUCT VLE^REF(*); !data structure definition
BEGIN ! for a list element and
INT ELEMENT^PTR; ! its attributes
STRING ELEMENT^SCALE,ELEMENT^TYPE;
INT ELEMENT^LENGTH,ELEMENT^OCCURS;
END;
STRUCT .VLIST(VLE^REF) [0:3]; !arrays for each data
! descriptor
INT VLIST^LEN; !number of data descriptors
INT WFORMAT; !dummy internal format
INT FLAGS; !flag values for FORMATDATA
! The list elements:
STRING .MONTH[0:9], !month name
.NAME[0:19]; !user name
INT DATE, !date of month
YEAR; !year number
! Other variables:
INT BYTES^READ; !used by I/O procedures
INT I; !count