COPY

プチコン3号 プチコンBIG 

配列の内容を一括代入

COPY aryW,aryR COPY aryW,ofsW,aryR[[,ofsR],cnt] COPY aryW[,ofsW],"@name"[,cnt]

パラメーター

aryW値を書き込む配列名
aryR値を読み込む配列名
ofsW代入を開始する要素番号(先頭が0、省略時:0)
ofsR読込を開始する要素番号(先頭が0、省略時:0)
cnt処理する要素数(省略時は全て)
@nameDATAを読込むラベル名

解説

配列の値を、別の配列または[DATA]文で指定した内容から一括代入します。
代入される配列の何番目(先頭が0)から代入するのか、また、配列から代入する場合はその何番目のデータから読み始めるのかを指定する事もできます。
また、一次配列に限り、代入される要素数が足りない場合は自動追加されます。

labelを使用してDATAを読み込む場合、配列の要素数よりDATAの数が少ないとエラーとなります。

サンプルコード

DIM A[3],B[3]
A[0]=1
A[1]=2
A[2]=3
B[0]=4
B[1]=5
B[2]=6
以上の条件で、以下をそれぞれ実行した場合
'例             結果(Aの内容)
COPY A,B       '4,5,6   単純にBをAに代入する
COPY A,1,B     '1,4,5,6 A[1]以降にBを代入。要素が自動追加
COPY A,1,B,2   '1,4,5   A[1]以降にBから2つ代入
COPY A,1,B,2,1 '1,6,3   A[1]以降にB[2]以降から1つ代入
COPY A,@DAT    '1,3,5,7,9 DATAから引用。要素は自動追加
@DAT
DATA 1,3,5,7,9
これはエラー。DATAが要素数より少ないのはダメ
DIM A[5]
COPY A,@DAT
@DAT
DATA 1,2,3  'エラー。DATA数がA[5](要素数5)より少ないのはダメ
 
配列A,Bに対し「A=B」ではコピーになりません!!
DIM A[1],B[1]
A=B
A[0]=3
?A[0],B[0]
 
実行結果(B[0]の値も変わってしまっている)
3   3

参照

= 変数に値を代入
DIM 変数の使用を宣言
VAR 変数の使用を宣言。別SLOTの変数内容を取得
SWAP 2つの変数の値を交換
INC 変数に値を加算
DEC 変数の値を減算
COPY 配列の内容を一括代入
SORT 配列を昇順に並び替え
RSORT 配列を降順に並び替え
PUSH 1.文字列の最後に文字を追加 2.配列の最後に要素を追加する
POP 1.文字列の最後の1文字を削除 2.配列の最後の要素を削除し取得
UNSHIFT 1.文字列の先頭に文字列を追加 2.配列の先頭に要素を追加する
SHIFT 1.文字列の先頭の1文字を削除 2.配列の先頭の要素を削除し取得
FILL 配列の全要素に同じ値を代入

Facebookコメント