動的配列について

解決


月光の瞳  2005-09-12 15:13:06  No: 125217

動的配列を操作したいのですが
例えば、確かめのため配列に値が代入されたかどうか調べるのに
textbox1.text = mono(8,12).tukue
ではインデックスが境界線外だというエラーがでます、
textbox1.text = mono(8,0).tukue
だと値は表示されますが、予想していた値ではなく最後に取得した
データが表示されます。
おそらく値が変数で上書きされているみたいなのですが、
配列をどんどん0からMAXまで代入して
textbox1.text = mono(8,12).tukueのように直接インデックス値を
指定して値を蓄えるにはどうしたらよろしいのでしょうか?


我龍院忠太  2005-09-12 16:59:20  No: 125218

>ではインデックスが境界線外だというエラーがでます、
配列の次元の添字の最大値はUBoundで取得できます。

>textbox1.text = mono(8,0).tukue
>だと値は表示されますが、予想していた値ではなく最後に取得した
>データが表示されます。
変数は常に最後にセットしたものが保持されると思うのだが、
何を予想しいていたのですか?

>textbox1.text = mono(8,12).tukueのように直接インデックス値を
>指定して値を蓄えるにはどうしたらよろしいのでしょうか?
値を蓄えるって?

要するに配列に入っている文字列を全てテキストボックスに吐き出したい
ということかな。


特攻隊長まるるう  2005-09-12 18:23:11  No: 125219

質問のタイトルから ReDim を使っての配列の再割り当て
かとも思いますが…境界外のエラーは別問題です。
>>ではインデックスが境界線外だというエラーがでます、
>配列の次元の添字の最大値はUBoundで取得できます。
…ですよね。境界外だと分かってる場所に入れないように
します。

ReDim で配列内のデータを引き継ぎたい場合は、
Preserve を指定してそれまでの配列の情報を再定義した
配列に自動でコピーさせます。ただし、動的配列の最後の
次元のサイズ変更しかできません。2次元配列で1次元の
サイズも変えたい場合は別の変数に新しい配列を定義して
自分で配列の内容を1つ1つコピーするような関数を作り
ます。


月光の瞳  2005-09-13 12:30:21  No: 125220

ごめんなさい配列の宣言位置が間違いでした。
改めて謝罪します。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加