PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
4151 98/11/27 09:19:48 RE(3):ありがとうございます。 By ei
4148 98/11/26 17:29:45 RE(2):PB6: 可変長配列について質問です By Taka
4147 98/11/26 17:26:20 RE(1):PB6: 可変長配列について質問です By Air Hawk
4144 98/11/26 15:31:18 PB6: 可変長配列について質問です By ei

カテゴリ:スクリプトの記述
日付:1998年11月26日 17:29 発信者:Taka
題名:RE(2):PB6: 可変長配列について質問です

eiさん こんばんは。 Takaです。

>可変長配列で、要素を増やすのは簡単ですが、へらしたい場合はどうすれば
>いいのでしょうか?

>増やしたら 増やしっぱなしが いやなので、不要になったらメモリから解放
>したいのですが、ヘルプもブックスオンラインにもそれらしき記述がありま
>せん。

>やはり、できないのでしょうか?

以下の方法で、配列要素を減らすことが可能ですので試してみてください。

インスタンス変数:  string  i_ary[]
設定データの仮定:  i_ary[n]の中で、不要になった配列は Null になっているとする

配列を圧縮する処理:
string  ary_old[], ary_new[]
integer  max, cnt, ary

ary_old = i_ary   /* 既存データ待避 */
i_ary   = ary_new   /* 配列なしで初期化 */

max = UpperBound( ary_old )

For cnt = 1 To max
 If Not IsNull( ary_old[cnt] ) Then
  ary ++
  i_ary[ary] = ary_old[cnt]
 End If
Next

減らすというか、待避 → 初期化 → 必要なものだけ復元 という、最もベーシックな方法です。
但し、実質的なメモリが開放されるかどうかは不明ですのでご了承ください。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.