请问:如何通过函数/过程返回数组?
我现在需要一个function,用它来返回一个数组,如何实现? 问题点数:50、回复次数:7Top
1 楼nononono(null,null)回复于 2001-01-20 17:12:00 得分 10
定义这个数组类型,在函数/过程的参数中定义这个数组参数为变参,如:
PROCEDURE 过程名(VAR 数组参数名 : 数组类型 ....)Top
2 楼tttk(网络芝麻)回复于 2001-01-20 17:13:00 得分 0
我的代码如下:
procedure TfmCounter.FormCreate(Sender: TObject);
var
arrNum: array of Integer;
begin
...
SplitStr(Buffer, ',', arrNum);
...
end;
procedure TfmCounter.SplitStr(lcStr: String; SplitChar: String; var arrDest: array of Integer);
begin
SetLength(arrDest, 3);
...
end;
错误:Variable 'arrNum' might not have been initializedTop
3 楼tttk(网络芝麻)回复于 2001-01-20 17:17:00 得分 0
可是如果我要是执行:
SetLength(arrNum,1);
SplitStr(Buffer,',',arrNum);
将收到:Incompatible types 错误,高手,救救我。
Top
4 楼nononono(null,null)回复于 2001-01-20 17:21:00 得分 40
是说参数类型不对吧?
应该把 array of Integer 定义成一个类型,用这个类型去说明你的形参arrDest和实参arrNum,这样类型就一致了。Top
5 楼tttk(网络芝麻)回复于 2001-01-20 17:31:00 得分 0
谢谢你,nononono,照你说的我的问题解决了。Top
6 楼nononono(null,null)回复于 2001-01-20 17:33:00 得分 0
还有:array of Integer ,这样的数组太大啦!!!!Top
7 楼YangYun()回复于 2001-01-20 17:41:00 得分 0
你的数组没有定义长度,这样的话,程序无法对其定义数组的大小以及对它的项进行初如化,请试试用
var arrnum:array[1..100] of integer;
程序变参中不能返回不定长的数据,除非你是用Variant变量。Top




