gla*_*snt 8 powerbuilder upperbound
string array[]
long lBound, uBound
lBound = LowerBound(array[]) // = 1, empty array value
uBound = UpperBound(array[]) // = 0, empty array value
array[1] = 'Item 1'
array[2] = 'Item 2'
array[3] = 'Item 3'
lBound = LowerBound(array[]) // = 1
uBound = UpperBound(array[]) // = 3
array[3] = '' //removing item 3
lBound = LowerBound(array[]) // = 1, still
uBound = UpperBound(array[]) // = 3, still (but array[3] is nulled?
Run Code Online (Sandbox Code Playgroud)
我认为'array [3]'这行是错误的,但我想我已经读过这应该删除数组单元格了.
删除阵列单元的正确方法是什么?它取决于对象类型吗?(String vs Number vs Object)
要么
可以操纵UpperBound值使其工作吗?
即在删除第3项之后,我希望UpperBound或arraylength为2,因为这在逻辑上是正确的.
对于可变大小的数组,在为其指定值时会为该数组分配内存.UpperBound返回当前脚本中为数组定义的最大值.但是,您可以使用其他动态数组来完成这一操作.
string array2[]
int i
for i = 1 to UpperBound(array[]) - 1
array2[i] = array[i]
next
array = array2
Run Code Online (Sandbox Code Playgroud)
然后UpperBound(array [])将减少1.
这适用于UpperBound(array []) - 1> 2,因为当声明动态数组时,powerbuilder默认为3个元素分配内存大小.
归档时间: |
|
查看次数: |
24394 次 |
最近记录: |