[ |../../index.htm#lansa/substring_e.htm]
現在地:
7.122.2 SUBSTRING の使用例
例1:以下の表に、フィールド#Aが長さ10文字の英数字フィールド、フィールド#Bが長さ5文字の英数字フィールドの場合に、さまざまなSUBSTRINGコマンドを使用したときの結果を示します。
SUBSTRING実行前の#A |
SUBSTRING実行前の#B |
SUBSTRINGコマンド |
SUBSTRING実行後の#B |
ABCDEFGHIJ |
XXXXX |
FIELD(#A) INTO_FIELD(#B) |
ABCDE |
ABCDEFGHIJ |
XXXXX |
FIELD(#A 1 1) INTO_FIELD(#B) |
A |
ABCDEFGHIJ |
XXXXX |
FIELD(#A 1 1) INTO_FIELD(#B 1 1) |
AXXXX |
ABCDEFGHIJ |
XXXXX |
FIELD(#A 2 2) INTO_FIELD(#B) |
BC |
ABCDEFGHIJ |
XXXXX |
FIELD(#A 2 2) INTO_FIELD(#B 2) |
XBC |
ABCDEFGHIJ |
XXXXX |
FIELD(#A 2 2) INTO_FIELD(#B 2 2) |
XBCXX |
ABCDEFGHIJ |
XXXXX |
FIELD(#A 9 1) INTO_FIELD(#B) |
I |
ABCDEFGHIJ |
XXXXX |
FIELD(#A 9 2) INTO_FIELD(#B) |
IJ |
ABCDEFGHIJ |
XXXXX |
FIELD(#A 9 2) INTO_FIELD(#B 2) |
XIJ |
ABCDEFGHIJ |
XXXXX |
FIELD(#A 9 2) INTO_FIELD(#B 2 2) |
XIJXX |
例2:SUBSTRINGコマンドを使用して、#DDMMYYという6桁の数値タイプ日付フィールドの形式をDDMMYYからYYMMDDに変更します。
DEFINE FIELD(#WORK02) TYPE(*CHAR) LENGTH(2) SUBSTRING FIELD(#DDMMYY 1 2) INTO_FIELD(#WORK02) SUBSTRING FIELD(#DDMMYY 5 2) INTO_FIELD(#DDMMYY 1 2) SUBSTRING FIELD(#WORK02) INTO_FIELD(#DDMMYY 5 2)
例3:以下のRDMLプログラムは、ユーザーが入力した最大20個の製品番号を、#PRODUCTSという1つの長い文字列に保管し、入力完了後にそのすべての製品番号を印刷します。
DEFINE FIELD(#PRODUCTS) TYPE(CHAR) LENGTH(200) DEFINE FIELD(#ENTERED) TYPE(*DEC) LENGTH(3) DECIMALS(0) DEFAULT(0) DEFINE FIELD(#I) TYPE(*DEC) LENGTH(3) DECIMALS(0) DOUNTIL '(#PRODNO = *BLANKS) *OR (#ENTERED = 20)' CHANGE #PRODNO *BLANKS REQUEST FIELDS(#PRODNO) IF '#PRODNO *NE *BLANKS' CHANGE #ENTERED ('#ENTERED 1') CHANGE #I '((#ENTERED 1) 10) 1' SUBSTRING FIELD(#PRODNO) INTO_FIELD(#PRODUCTS #I 10) ENDIF ENDUNTIL DOWHILE '#ENTERED GT 0' CHANGE #I '((#ENTERED 1) 10) + 1' SUBSTRING FIELD(#PRODUCTS #I 10) INTO_FIELD(#PRODNO) FETCH FIELDS(#DESCRIPT #PRICE #QUANTITY) FROM_FILE(PRODMAST) WITH_KEY(#PRODNO) UPRINT FIELDS(#PRODNO #DESCRIPT #PRICE #QUANTITY) CHANGE #ENTERED ('#ENTERED - 1') ENDWHILE
[ |../../index.htm#lansa/substring_e.htm]