arraySplice

構文
arraySplice( Var array[], offset, len = NULL )
引数
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 ////////////////////////////////////////////////// // 【引数】 // var arr[] : 追加される配列(参照引数) // tmp[] : 追加する配列 // 【戻値】 // 追加した後の配列の要素数 ////////////////////////////////////////////////// FUNCTION arrayMerge(var arr[], tmp[]) FOR n = 0 TO UBound(tmp) arrayPush(arr, tmp[n]) NEXT RESULT = UBound(arr) FEND ////////////////////////////////////////////////// // 【引数】 // array : 要素を追加する配列(参照引数) // str : 追加する要素 // 【戻値】 // 処理後の配列の中の要素の数 ////////////////////////////////////////////////// FUNCTION arrayPush(var arr[], str) DIM res = RESIZE(arr, UBound(arr) + 1) arr[res] = str RESULT = res + 1 FEND ////////////////////////////////////////////////// // 【引数】 // 配列 : 上限値を求める配列 // 【戻値】 // 配列の上限値 ////////////////////////////////////////////////// FUNCTION UBound(array[]) RESULT = RESIZE(array) FEND