ILE COBOL 解説書

STRING ステートメントの例

次の例では、STRING ステートメントに適用されるいくつかの考慮事項を示します。

データ部で、プログラマーは次のフィールドを定義したものとします。

   01 RPT-LINE     PICTURE X(120).
   01 LINE-POS     PICTURE 99.
   01 LINE-NO      PICTURE 9(5) VALUE 1.
   01 DEC-POINT    PICTURE X VALUE ".".

また、FILE セクションで、次の入力レコードを定義したものとします。

01 RCD-01.
   05 CUST-INFO.
      10 CUST-NAME  PICTURE X(15).
      10 CUST-ADDR  PICTURE X(34).
   05 BILL-INFO.
      10 INV-NO     PICTURE X(6).
      10 INV-AMT    PICTURE $$,$$$.99.
      10 AMT-PAID   PICTURE $$,$$$.99.
      10 DATE-PAID  PICTURE X(8).
      10 BAL-DUE    PICTURE $$,$$$.99.
      10 DATE-DUE   PICTURE X(8).

プログラマーが、RCD-01 の情報の一部から成る出力行を作成したいとします。 この行は、行番号、顧客の名前と住所、請求書番号、支払期日、および支払金額 (示された円の桁数に切り捨てられた) で構成されます。

読み取られるレコードには次の情報が入っています。
J.B. SMITH     
444 SPRING ST., CHICAGO, ILL.     
A14275
¥4,736.85
¥2,400.00
09/22/76
¥2,336.85
09/09/94

手続き部で、プログラマーは RPT-LINE を SPACES に初期設定し、LINE-POS (ポインター・フィールドとして使用される) を 4 に設定します。 その後で、次の STRING ステートメントを出します。

   STRING LINE-NO SPACE
       CUST-INFO SPACE
       INV-NO SPACE
       DATE-DUE SPACE
     DELIMITED BY SIZE,
       BAL-DUE
     DELIMITED BY DEC-POINT
     INTO RPT-LINE
     WITH POINTER LINE-POS.

ステートメントの実行時には、次の処理が行われます。

  1. フィールド LINE-NO が RPT-LINE の桁 4 〜 8 に移動されます。
  2. スペースが桁 9 に移動されます。
  3. グループ項目 CUST-INFO が桁 10 〜 58 に移動されます。
  4. スペースが桁 59 に移動されます。
  5. INV-NO が桁 60 〜 65 に移動されます。
  6. スペースが桁 66 に移動されます。
  7. DATE-DUE が桁 67 〜 74 に移動されます。
  8. スペースが桁 75 に移動されます。
  9. BAL-DUE の小数点の前にある部分が桁 76 〜 81 に移動されます。

STRING ステートメントの実行後は、次のようになります。

注:
一連の MOVE ステートメントの代わりに、1 つの STRING ステートメントを書くことができます。

図 24. STRING ステートメントの例の出力データ

REQTEXT


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]