VFP中如何返回一个数组,并且得到函数返回数组

酸枣 2009-08-21 08:50:07
我在函数中定义了一个数组,但是不知道如何返回数组的值,如何得到函数返回的数组,VFP中可以实现吗?在这里请教一下大家,下面是一个简单的示例,请大家帮忙改一下

local lcount
lcount="4"
Dime array_b
*******数组array_b得到函数返回的值,但是只得到数组的第一个值(因为函数只返回了数组的第一个值),如果数组的值返回正确,那么数组array_b是否能全部获得数组array_a的值
array_b=文件(Val(allt(lcount)))
wait_(array_a[2]) &&array_a[2]的仍然是返回数组的第一个值
list memo to C:\123.txt
Function 文件
LPARAMETERS lcount
dime array_a[lcount]
For i=1 to 5
array_a[i]=i+2
wait_(array_a[i])
EndFor
return array_a &&只返回了数组的第一个值, 如何把全部数组的值返回?
ENdfun
retu

也就是说我在这里主要是请教大家三个问题
1.如上列所述,函数“文件”如何返回数组array_a的全部值
2.假如第一个问题解决,那么上列中如何得到函数返回的数组值,列中是否正确
3.函数返回二维数组和一维数组的方法是否一样
...全文
621 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kj1225 2011-11-25
  • 打赏
  • 举报
回复
只有这两种方法了么,,
那我要调用一个函数,这个函数用
select 。。。into cursor t1
select t1
copy to array arr1
我要返回这个arr1
因为你不知道这个数组的长度
这个arr1貌似是不能先定义的。
那么这样该如何才能返回到arr1
jasmin2010 2010-08-14
  • 打赏
  • 举报
回复
太对了,实验过了,private local dime,定义的局部数组均不可用,必须定义为public

function xx
......
public b(m)
......
return @b
endf

调试通过
十豆三 2009-08-21
  • 打赏
  • 举报
回复
给你个例子:

Dimension array_b(1)
文件(4,@array_b)
?array_b(1)
?array_b(2)
?array_b(3)
?array_b(4)

Function 文件
Lparameters lcount,ltarray_b
Dimension ltarray_b[lcount]
For i=1 To lcount
ltarray_b[i]=i+2
Endfor
Endfun
firstxinjie 2009-08-21
  • 打赏
  • 举报
回复
在 VFP9 中,UDF可以返回数组,但是该数组必需是全局的,例如:


Function Test
Public array_a[5]
For i=1 To 5
array_a[i]=i+2
Endfor
Return @array_a
Endfunc
aabiao 2009-08-21
  • 打赏
  • 举报
回复
用参数返回数组:
dime x(1)
myfun(@x,a)

function myfun(y,b)

2,748

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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