本ページには広告が含まれています。
- 構文
- arraySplice( array, offset, len )
- 引数
- array 必須
- offset 必須
- len省略可
- 戻り値
プログラム
//////////////////////////////////////////////////
// 【引数】
// array
// offset
// len
// 【戻り値】
//
//////////////////////////////////////////////////
FUNCTION arraySplice(Var array[], offset, len = NULL)
DIM tmp[-1]
IF len = NULL THEN len = UBound(array)
IF len < 0 THEN len = len + UBound(array)
FOR i = offset - 1 TO len - 1
arrayPush(tmp, array[i])
NEXT
DIM tmp1[-1]
FOR i = 0 TO offset - 1
arrayPush(tmp1, array[i])
NEXT
DIM tmp2[-1]
FOR i = offset + len TO UBound(array)
arrayPush(tmp2, array[i])
NEXT
arrayMerge(tmp1, tmp2)
SETCLEAR(array)
RESIZE(array, UBound(tmp1))
FOR i = 0 TO UBound(tmp1)
array[i] = tmp1[i]
NEXT
RESULT = SLICE(tmp)
FEND
//////////////////////////////////////////////////
// 【引数】
// arr : 追加される配列(参照引数)
// tmp : 追加する配列
// 【戻り値】
// 追加した後の配列の要素数
//////////////////////////////////////////////////
FUNCTION arrayMerge(Var arr[], tmp[])
FOR n = 0 TO UBound(tmp)
arrayPush(arr, tmp[n])
NEXT
RESULT = UBound(arr)
FEND
//////////////////////////////////////////////////
// 【引数】
// array : 要素を追加する配列(参照引数)
// values : 追加する要素をvalue1から指定
// 【戻り値】
// 処理後の配列の要素の数
//////////////////////////////////////////////////
FUNCTION arrayPush(var array[], value1 = EMPTY, value2 = EMPTY, value3 = EMPTY, value4 = EMPTY, value5 = EMPTY, value6 = EMPTY, value7 = EMPTY, value8 = EMPTY, value9 = EMPTY, value10 = EMPTY, value11 = EMPTY, value12 = EMPTY, value13 = EMPTY, value14 = EMPTY, value15 = EMPTY, value16 = EMPTY)
DIM i = 1
WHILE EVAL("value" + i) <> EMPTY
DIM res = RESIZE(array, UBound(array) + 1)
array[res] = EVAL("value" + i)
i = i + 1
WEND
RESULT = LENGTH(array)
FEND
//////////////////////////////////////////////////
// 【引数】
// inputs : 繰り返す文字列
// multiplier : inputsを繰り返す回数
// 【戻り値】
// inputsをmultiplier回を繰り返した文字列を返します
//////////////////////////////////////////////////
FUNCTION strRepeat(inputs, multiplier)
DIM res = ""
FOR n = 1 TO multiplier
res = res + inputs
NEXT
RESULT = res
FEND
//////////////////////////////////////////////////
// 【引数】
// arrayname : 上限値を求める配列の名前
// dimension : 返す次元を示す整数
// 【戻り値】
// 配列の上限値
//////////////////////////////////////////////////
FUNCTION UBound(arrayname[], dimension = 1)
RESULT = EVAL("RESIZE(arrayname" + strRepeat("[0]", dimension - 1) + ")")
FEND