COBOL2002 ユーザーズガイド
STRING文は,幾つかのデータ項目の内容の一部または全部をつなぎ合わせて,一つのデータ項目に移します。
STRING文については,マニュアル「COBOL2002 言語 標準仕様編 10.8.47 STRING文」を参照してください。
STRING文の例を次に示します。
- (例1)
- 受け取り開始位置を指定しない(POINTER指定のない)STRING文
- 三つのデータ項目AA,BB,CCのデータの一部または全部を取り出して,文字列を作成します。
- データ項目AAにはコンマ(,),BBにはセミコロン(;),CCには空白( )がデータの区切り文字として入っていて,区切り文字までのデータを取り出して文字列を作成します。
- このSTRING文を実行すると,次のようにデータを転記します。なお,文中のかたかなは,半角かたかな文字を表します。
- AAのデータを,コンマ(,)の直前までMSG-01に転記します。
'12345'
- 英数字定数'ハ'を,1.に続けて転記します。
'12345ハ'
- BBのデータを,セミコロン(;)の直前まで,2.に続けて転記します。
'12345ハ CHECK OK'
- 英数字定数'デス。'を,3.に続けて転記する。
'12345ハ CHECK OKデス。'
- CCのデータを,空白( )の直前まで,4.に続けて転記します(CCのデータの区切り文字は空白で,セミコロンはデータの一部です)。
'12345ハ CHECK OKデス。 READY;'
MSG-01の残りの部分の内容は変更されません。
- (例2)
- 受け取り開始位置を指定する(POINTER指定のある)STRING文
- データ項目D1,D2,D3,D4のデータの一部または全部を取り出し,MSG-02の領域がいっぱいになるまで転記して文字列を作成します。
- MSG-02がいっぱいかどうかの判定には,OVERFLOW指定を使用します。
- 送り出し側作用対象のデータ項目からは,先頭から最初の空白の直前までのデータを取り出します。
- 受け取り開始位置は,POINTER項目の初期値で指定します。
77 D1 PIC X(10).
77 D2 PIC X(10).
77 D3 PIC X(10).
77 D4 PIC X(10).
77 PTR-1 PIC 9(5) USAGE COMP.
77 MSG-02 PIC X(25).
:
MOVE 6 TO PTR-1.
MOVE SPACE TO MSG-02.
STRING D1 D2 D3 D4
DELIMITED BY SPACE
INTO MSG-02
WITH POINTER PTR-1
ON OVERFLOW
DISPLAY 'OVERFLOW CONDITION;'
END-STRING.
- PTR-1の初期値が6の場合,このSTRING文を実行すると,次のようにデータを転記します。
- D1のデータを,最初の空白の直前までMSG-02に転記します。
PTR-1の初期値は6なので,MSG-02の6文字目からデータを転記し,先頭の5文字の内容は変更しません。
'_____123,45'
- D2のデータを続けて転記します。
D2のデータには空白がないので,右端の文字Jまですべて転記します。
'_____123,45ABCDEFGHIJ'
- D3のデータを続けて転記します。
D3のデータを4文字転記すると受け取り側作用対象がいっぱいになるので,転記を終了して,OVERFLOW指定に書かれたDISPLAY文を実行します。D3の残りのデータとD4のデータは使用しません。
PTR-1には,転記した文字数が加えられています(この場合,MSG-02のサイズ+1=26が設定されています)。
All Rights Reserved. Copyright (C) 2013, 2016, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2002, 2011, Microsoft Corporation.