COBOL2002 ユーザーズガイド
外部スイッチを使うと,プログラムの実行中に外部(別の実行単位)からプログラムを制御できます。ここでは,外部スイッチの使い方や値の設定方法について説明します。
COBOL2002では,外部からの制御情報を受け取るための0と1から構成される8けたの領域があります。この領域の各けたは,プログラムの特殊名段落で記述する外部スイッチ名(UPSI-0,UPSI-1,……,UPSI-7)に対応します。外部スイッチ名と領域上の位置との関係を次に示します。"1"になっている個所がそれぞれの外部スイッチに対応します。
表17-1 外部スイッチと位置との関係
外部スイッチ名 | 対応する位置 |
---|---|
UPSI-0 | 10000000 |
UPSI-1 | 01000000 |
UPSI-2 | 00100000 |
UPSI-3 | 00010000 |
UPSI-4 | 00001000 |
UPSI-5 | 00000100 |
UPSI-6 | 00000010 |
UPSI-7 | 00000001 |
外部スイッチの状態の値は,環境変数CBLUPSIで設定します。ここでは,値の設定方法について説明します。
外部スイッチの状態の値は,プログラムの実行中に初めてスイッチ状態条件を参照したとき,環境変数CBLUPSIに指定された値の内容で初期化されます。
環境変数CBLUPSIの設定形式と規則を次に示します。
CBLUPSI=文字列
SET文を使うと,プログラムの実行中に外部スイッチの状態を変更できます。ただし,SET文で変更した外部スイッチの状態は,現在実行中の実行環境だけで有効であり,環境変数CBLUPSIの値には反映されません。
プログラムで外部スイッチを参照するには,特殊名段落で外部スイッチの機能名が参照する外部スイッチのオン状態(on status)やオフ状態(off status)を,条件名に関連づけます。外部スイッチのスイッチ状態は,この条件名を使って調べられます。
外部スイッチの値を変更してプログラムの処理の流れを変更する例を示します。
IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE1. : ENVIRONMENT DIVISION. : CONFIGURATION SECTION. SPECIAL-NAMES. UPSI-0 IS SW0 ON STATUS IS ONIND0 OFF STATUS IS OFFIND0 UPSI-3 IS SW3 ON STATUS IS ONIND3 OFF STATUS IS OFFIND3 : UPSI-5 OFF STATUS IS OFFS5. : INPUT-OUTPUT SECTION. : PROCEDURE DIVISION. : IF ONIND0 GO TO A …1. ELSE GO TO B. : IF ONIND3 GO TO C …2. ELSE GO TO D. : IF OFFS5 GO TO A …3. ELSE GO TO C. : A. : B. : C. : D. :
外部スイッチ名 | 外部スイッチの状態 |
---|---|
UPSI-0 | 1(オン) |
UPSI-1 | 0(オフ) |
UPSI-2 | 0(オフ) |
UPSI-3 | 1(オン) |
UPSI-4 | 0(オフ) |
UPSI-5 | 1(オン) |
UPSI-6 | 0(オフ) |
UPSI-7 | 0(オフ) |
外部スイッチの状態が変更されたため,プログラムの1.,2.,3.の制御は次のようになります。
All Rights Reserved. Copyright (C) 2013, 2016, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2002, 2011, Microsoft Corporation.