[開発環境]win2000/vb6.0
度々お世話になっております。
初歩的でお恥ずかしいのですが、配列の使い方が解らず書き込みをさせていただきました。
現在private宣言でフォームの一番上に配列を宣言しています
この配列の個数を可変にしたいのですが、必要とするプロシージャで
呼び出されるたびにReDimを使うとメモリ領域を取り直してしまう為
前回該当プロシージャを呼び出した際に格納していた値がクリアされてしまいます。
できれば、配列の個数は明示的に指定するのではなく、可変としてうまく処理したいのですが、何かよい方法はないでしょうか?
'---ここがフォームの一番上にかかれています
private hairetu() as string
private cnt as integer
'---以下、プロシージャ
Redim hairetu(cnt) = No
hairetu(cnt) = No
cnt = cnt+1
呼び出されるたびにこのような記述をしていると、配列に代入した前回の値がなくなってしまいます。
どうかよろしくお願いします。
ReDim時に、『Preserve』を指定する事で解決できるかと思います。
ただ、サイズの増減が頻繁に行われるようであれば、配列よりも
Collection等を用いたほうが、処理としては楽になるかもしれません。
MSDNの『Redim ステートメント』のPreserveを注意して見てください。
魔界の仮面弁士さん、ぴろあきさん、即レスありがとうございました。
ご教授いただいたPreserveを使用したところ見事望みの動きをしてくれました。
初歩的な質問にもかかわらずありがとうございました!!
#Collectionオブジェクトですが、配列に番号だけ保持したいので
役割としてはCollectionじゃなくてよいかと思ってそうしております。
ツイート | ![]() |