powerbuilder定义数组变量的问题

logon29 2009-07-28 11:03:21
刚好公司有个软件需要维护一下,看到代码中数组长度都是些死的(数组长度随着需求改变而增加)
int len=5 //实际不是直接赋值为5,而是从数据库中查询获取
long arr[5]//没问题
long arr[len]//有问题

long arr2[2,5]//没问题
long arr2[2,len]//有问题

难道这定义数组的时候,长度不能使用变量?有没有其他方法实现?

请同学们指导一下,powerbuilder我是门外汉。
...全文
1597 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
liubocy 2009-07-28
  • 打赏
  • 举报
回复
打开你的pb工程,file--new--pb object--structure
选择type为long,name设置为array[]
保存这个结构名字为array_test

定义这个结构为一个动态数组的代码:

array_test array[]

//给结构赋值 2*2
array[1].array[1] = 1
array[1].array[2] = 2
array[2].array[1] = 3
array[2].array[2] = 4


leio 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 leio 的回复:]
定义一个结构,结构内使用一个一维动态数组
global type array_test from structure
long array[]
end type

再定义这个结构为一个动态数组
array_test array[]

结合起来就是个二维动态数组。



[/Quote]

global那段是结构edit source的内容。
logon29 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 leio 的回复:]
定义一个结构,结构内使用一个一维动态数组
global type array_test from structure
long array[]
end type

再定义这个结构为一个动态数组
array_test array[]

结合起来就是个二维动态数组。



[/Quote]

global这段代码要放在哪呢?我直接贴在代码中,提syntex error哦。
还有个做法就是预留足够大的长度,呵呵。歪点子@
leio 2009-07-28
  • 打赏
  • 举报
回复
定义一个结构,结构内使用一个一维动态数组
global type array_test from structure
long array[]
end type

再定义这个结构为一个动态数组
array_test array[]

结合起来就是个二维动态数组。


xiaoyehua 2009-07-28
  • 打赏
  • 举报
回复
我只知道PB内,1维数组长度是可自定义的。2维不行
青锋-SS 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 logon29 的回复:]
那就郁闷了。即使一维的改为可变数组,二维不支持,程序一样不能通用啊,长度一改变,又得去维护代码。。。
[/Quote]你可以考虑用datawindow/datastore去代替数组.
logon29 2009-07-28
  • 打赏
  • 举报
回复
那就郁闷了。即使一维的改为可变数组,二维不支持,程序一样不能通用啊,长度一改变,又得去维护代码。。。
青锋-SS 2009-07-28
  • 打赏
  • 举报
回复
不支持这样,不过可以通过long arr[]的方式定义可变长数组,但只能定义一维数组.
logon29 2009-07-28
  • 打赏
  • 举报
回复
同时也多谢楼上诸位同学!
logon29 2009-07-28
  • 打赏
  • 举报
回复
多谢leio和liubocy

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧