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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.