Guardian Programmer's Guide

Table Of Contents
Formatting and Manipulating Character Data
Guardian Programmer’s Guide 421922-014
19 - 22
! Set up the edit descriptors and convert to internal form:
EFORMAT ':=' ["TR17,A8,TL22,2(I4,TR28),//,",
"TR3,'SUN',TR2,'MON',TR2,'TUE',TR2,'WED',",
"TR2,'THU',TR2,'FRI',TR2,'SAT'//",
"7(I5)//7(I5)//7(I5)//7(I5)//7(I5)"]
-> @S^PTR;
SCALES := 0;
CONVERSION := 1;
EFORMATLEN := @S^PTR '-' @EFORMAT;
ERROR := FORMATCONVERT(IFORMAT,IFORMATLEN,EFORMAT,
EFORMATLEN, SCALES, SCALE^COUNT,
CONVERSION);
IF ERROR <= 0 THEN
BEGIN
START^LINE;
IF ERROR = 0 THEN
PUT^STR("Internal Format Buffer Too Short")
ELSE
BEGIN
PUT^STR("Format Error at Byte Position ");
ERROR := -ERROR;
PUT^INT(ERROR);
END;
PRINT^LINE;
CALL PROCESS_STOP_;
END;
! Set up arrays for month, year, and date values:
MONTH ':=' "APRIL";
INT^YEAR ':=' [1990D,1990D];
INT^ARRAY1 ':=' [1D,2D,3D,4D,5D,6D,7D];
INT^ARRAY2 ':=' [8D,9D,10D,11D,12D,13D,14D];
INT^ARRAY3 ':=' [15D,16D,17D,18D,19D,20D,21D];
INT^ARRAY4 ':=' [22D,23D,24D,25D,26D,27D,28D];
INT^ARRAY5 ':=' [29D,30D];