COLUMN サブコマンド (REREAD コマンド)

COLUMN は、 REREAD コマンドがデータを読み取るための開始桁を指定します。 デフォルトは 1 桁目です。 列に数値式を指定できます。

列に対する数式の指定

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.
  • この例のタスクでは、Chevrolets と Fords についてのみ、 PRICEQUANTITY を読み取ります。 PRICE および QUANTITYの開始桁位置を示すスクラッチ変数が作成され、両方のタイプの自動車のデータを読み取るために単一の DATA LIST コマンドが使用されます。
  • スクラッチ変数 #COL は、シボレーの場合は 13、その他のすべての自動車の場合は 1 に設定されます。 Fords の場合、データは 1 桁目から始まります。 変数 PRICE は列 3 から 6 から読み取られ、 QUANTITY は列 7 から 9 から読み取られます。 レコードがシボレーの場合、データは 13 桁目から始まります。 変数 PRICE は列 15 から 18 (15 は 3、16 は 4 など) から読み取られ、 QUANTITY は列 19 から 21 から読み取られます。

REREAD での FIXED と LIST の両方の入力の読み取り

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.
  • 列 1 から 14 は FIXED 形式で読み取られます。 その後、 REREAD はポインターを 15 桁目にリセットします。 したがって、15 桁目以降では、値は LIST 形式で読み取られます。
  • 2 番目の DATA LIST は、3 つの変数のみを指定します。 したがって、最初のレコードの値 -1、-2、および -3 は読み取られません。
  • プログラムは、レコード 2 の欠損値に対する警告と、レコード 4 の 3 つの欠損値に対する 2 番目の警告を生成します。
  • 5 番目と最後のレコードでは、値 LAST と値 9 の間に区切り文字はありません。 REREAD は、引き続き 9 を LIST 形式で読み取ることができます。