HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0926
2次元配列変数の再定義(?7解決


リンク

2007/9/26(Wed) 16:46:48|NO.11207

2次元の配列変数を必要に応じて拡張したいのですが、うまくいきません。

dim test,5,2 test(3,1)=10 test(6,1)=20 //ここで拡張したい


dim test,5,2 test(3,1)=10 dim test,7,2 test(6,1)=20 //こうすると、元々の内容が消えてしまう

プログラムガイドに、多次元配列の自動拡張は行いません。と書いてあるのですが、
手動でも出来ないのでしょうか。何方か方法を教えてくれると有難いです。



この記事に返信する


ライセン

リンク

2007/9/26(Wed) 18:15:53|NO.11208

内容を別の配列に保存すればいいと思います。



リンク

2007/9/26(Wed) 19:54:42|NO.11211

大きめの配列なので、repeatを何回も繰り返す事はしたくないのですが・・・

他に方法は無いのでしょうか?



Drip

リンク

2007/9/26(Wed) 20:31:31|NO.11213

Dripです。

 岩さん、こんにちは。
2次元の配列変数を必要に応じて拡張したいとのことですが、逆になぜ、何を実現したいがために
2次元の配列変数を必要に応じて拡張したいのでしょうか。
用途に応じて代用策が提案できるかもしれません。
質問の際には「なぜそれをしたいのか、何をしたいためにそれをしたいか」書き込むことで、
より適切なアドバイスがもらえますよ。



リンク

2007/9/26(Wed) 20:49:21|NO.11214

リストビューもどきを作っていて、
各行ごとに、2次元の配列変数で管理しているのですが、
追加するときに、配列変数を拡張したいのです。

2次元配列の拡張は出来ないんですかね?



Drip

リンク

2007/9/27(Thu) 02:26:29|NO.11224

Dripです。

 二次元配列は後から自在に拡張、縮小させることはできません。
googleでもHSPの配列変数に関わる参考になる文献が見つかります。
http://www.google.co.jp/search?hl=ja&q=HSP+%E5%A4%9A%E6%AC%A1%E5%85%83%E9%85%8D%E5%88%97+%E8%87%AA%E5%8B%95%E7%A2%BA%E4%BF%9D&btnG=%E6%A4%9C%E7%B4%A2&lr=

 さておき、リストビューのような、ユーザーが項目やレコードの数を可変させる構想を
考えていらっしゃるのでしたら、配列変数ではなく独自書式の文字列で管理した方が安全で
わかりやすいと思います。
 文字列ならばメモリの許す限り無限にサイズを拡大できますし、縮小も容易に行えます。
更に無駄なメモリ(空白の項目のサイズ)も必要としないので、管理方法としても非常に
スマートです。
 一度データの管理方法を配列変数に捕らわれず考えてみてください。



naznyark

リンク

2007/9/27(Thu) 02:59:02|NO.11228

> 2次元配列の拡張は出来ないんですかね?

配列変数の自動拡張は確保している最大次元以上の
次元の要素の場合のみ行われます。

dim test,5,2 test(3,1)=10 test( 4, 4 ) = 20 // 拡張される。 test( 4, 4, 0, 3 ) = 20 // 拡張される。 dim test2, 2, 2, 3 test2( 1, 0, 10 ) = 100 // 拡張される。

> リストビューもどきを作っていて

列数固定のリストならば
list( 列, 行 )
の形にすれば行数の増加は自動拡張で処理できます。

列数も不定ならば
・あらかじめ十分な大きさで配列を確保しておくか
・別の配列にコピーを行うか
・普通の配列以外でデータを管理するか
(上で Drip さんが書かれているのはこれにあたります。)
といったあたりの手法で処理を行うことになります。



リンク

2007/9/27(Thu) 05:25:20|NO.11230

ライセンさんDripさんnaznyarkさん有難うございました。

列数は変わらない予定なので、(列,行)の形にする事に決めました。
ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.