Podkomenda COLUMN (komenda REREAD)

COLUMN określa początkową kolumnę dla komendy REREAD , która ma odczytywać dane. Wartością domyślną jest kolumna 1. Dla kolumny można określić wyrażenie liczbowe.

Określanie wyrażenia liczbowego dla kolumny

INPUT PROGRAM.
DATA LIST /KIND 10-14 (A).
COMPUTE #COL=1.
IF (KIND EQ 'CHEVY') #COL=13.
 
DO IF (KIND EQ 'CHEVY' OR KIND EQ 'FORD').
REREAD COLUMN #COL.
DATA LIST /PRICE 3-6 (DOLLAR,2) QUANTITY 7-9.
END CASE.
END IF.
END INPUT PROGRAM.
BEGIN DATA
111295100FORD      CHAPMAN AUTO SALES
121199005VW    MIDWEST VOLKSWAGEN SALES
11 395025FORD      BETTER USED CARS
11       CHEVY 195005        HUFFMAN SALES & SERVICE
11       VW    595020        MIDWEST VOLKSWAGEN SALES
11       CHEVY 295015        SAM'S AUTO REPAIR
12       CHEVY 210 20        LONGFELLOW CHEVROLET
 9555032 VW                  HYDE PARK IMPORTS
END DATA.
LIST.
  • Zadanie w tym przykładzie polega na odczycie CENA i ILOŚĆ tylko dla Chevroleta i Fordów. Tworzona jest nowa zmienna wskazująca początkowe pozycje kolumn dla CENA i ILOŚĆ, a pojedyncza komenda DATA LIST służy do odczytywania danych dla obu typów automobilów.
  • Zmienna robocza #COL jest ustawiona na wartość 13 dla Chevroleta i 1 dla wszystkich innych samochodów. W przypadku opcji Fords dane zaczynają się w kolumnie 1. Zmienna CENA jest odczytywaana z kolumn 3-6, a ILOŚĆ jest odczytywaana z kolumn 7-9. Gdy rekord jest Chevrolet, dane zaczynają się w kolumnie 13. Zmienna CENA jest odczytywaana z kolumn 15-18 (15 to 3, 16 to 4, i tak dalej), a ILOŚĆ jest odczytywaana z kolumn 19-21.

Odczytywanie danych wejściowych FIXED i LIST z REREAD

INPUT PROGRAM.
DATA LIST    NOTABLE FIXED/ A 1-14(A).  /*Read the FIXED portion
REREAD       COLUMN = 15.
DATA LIST    LIST/ X Y Z.              /*Read the LIST portion
END INPUT PROGRAM.
 
*  The value 1 on the first record is in column 15.
 
BEGIN DATA
FIRST RECORD  1 2 3 -1 -2 -3
NUMBER 2      4 5
THE THIRD     6 7 8
#4
FIFTH AND LAST9 10 11
END DATA.
LIST.
  • Kolumny 1-14 są odczytyane w formacie FIXED . Następnie REREAD resetuje wskaźnik do kolumny 15. W ten sposób, począwszy od kolumny 15, wartości są odczytyane w formacie LIST .
  • Drugi parametr DATA LIST określa tylko trzy zmienne. W związku z tym wartości -1, -2 i -3 w pierwszym rekordzie nie są odczytywanie.
  • Program generuje ostrzeżenie dla brakującej wartości w rekordzie 2 i drugie ostrzeżenie dla trzech brakujących wartości w rekordzie 4.
  • W piątym i ostatnim rekordzie nie ma ogranicznika między wartością LAST a wartością 9. Program REREAD nadal może odczytać format 9 w formacie LIST .