$MV
Synopsis
SET $MV(dynvar,fpos[,vpos])=value
パラメータ
dynvar | MultiValue 動的配列 の保持に使用される変数。 |
fpos | フィールドレベル要素。dynvar 動的配列のフィールドレベル要素として value の挿入先を指定する整数。0 を指定すると、value は動的配列の先頭に追加されます。-1 を指定すると、value は動的配列の最後に追加されます。正の整数を指定すると、その位置のフィールドレベル要素が value に置き換えられます。 |
vpos | オプション — 値レベル要素。dynvar 動的配列の fpos で指定されたフィールドの中で、値レベル要素として value の挿入先を指定する整数。0 を指定すると、value は fpos フィールドの先頭に追加されます。-1 を指定すると、value は fpos フィールドの最後に追加されます。正の整数を指定すると、fpos フィールド内のその位置の値レベル要素が value に置き換えられます。 |
spos | オプション — サブ値レベル要素。dynvar 動的配列の vpos で指定された値レベル要素の中で、サブ値レベル要素として value の挿入先を指定する整数。0 を指定すると、value は vpos 要素の先頭に追加されます。-1 を指定すると、value は vpos 要素の最後に追加されます。正の整数を指定すると、vpos 内のその位置のサブ値レベル要素が value に置き換えられます。 |
説明
$MV 関数は、適切な動的配列区切り文字を使用して要素値を挿入することで、MultiValue 動的配列を作成および変更します。fpos を指定するとフィールド・マーク (@FM) 区切り文字 (CHAR(254))、vpos を指定すると値マーク (@VM) 区切り文字 (CHAR(253))、spos を指定するとサブ値マーク (@SM) 区切り文字 (CHAR(252)) が挿入されます。$MV により、要素を先頭または最後に追加したり、既存の要素値を指定された value に置き換えることができます。
既定では、$MV は、区切り文字ではなく、要素を挿入または追加します。そのため、要素値なしで動的配列区切り文字を挿入することはありません。動的配列区切り文字を挿入または追加するには、位置を示すパラメータ値を pos::1 と指定し、空文字列と同等とします。詳細は、以下の例を参照してください。
SET $MV(dynval,-1)="apple"
SET $MV(dynval,-1)="orange"
WRITE dynval,!
SET $MV(dynval,-1)="" // appends empty element
WRITE dynval,!
SET $MV(dynval,-1)="" // does nothing
WRITE dynval,!
SET $MV(dynval,-1::1)="" // appends 2nd delimiter
WRITE dynval,!
SET $MV(dynval,-1::1)="" // appends 3rd delimiter
WRITE dynval
例
以下の例では、3 つのフィールド要素を持つ動的配列を作成します。
SET $MV(dynval,-1)="apple"
SET $MV(dynval,-1)="orange"
SET $MV(dynval,-1)="banana"
WRITE dynval
以下の例では、3 つの要素の動的配列の先頭に要素値 “FRUIT” を追加して、4 つのフィールド要素を持つ動的配列を作成します。
SET $MV(dynval,-1)="apple"
SET $MV(dynval,-1)="orange"
SET $MV(dynval,-1)="banana"
SET $MV(dynval,0)="FRUIT"
WRITE dynval
以下の例では、動的配列の 2 番目の要素の値 (“orange”) を値 “nectarine” に置き換えます。
SET $MV(dynval,-1)="apple"
SET $MV(dynval,-1)="orange"
SET $MV(dynval,-1)="banana"
SET $MV(dynval,2)="nectarine"
WRITE dynval
以下の例では、3 つのフィールド要素を持つ動的配列を作成して、4 番目の空の要素を追加し、2 番目の要素値を削除します。
SET $MV(dynval,-1)="apple"
SET $MV(dynval,-1)="orange"
SET $MV(dynval,-1)="banana"
SET $MV(dynval,-1)=""
SET $MV(dynval,2)=""
WRITE dynval
以下の例では、3 つのフィールド要素を持つ動的配列を作成して、2 つの値レベル要素を最初のフィールド要素の中に追加します。
SET $MV(dynval,-1)="apple"
SET $MV(dynval,-1)="orange"
SET $MV(dynval,-1)="banana"
SET $MV(dynval,1,-1)="Braeburn"
SET $MV(dynval,1,-1)="Macintosh"
WRITE dynval
関連項目
-
"Caché MVBasic Reference" の "動的配列"