delphi函数返回数组变量问题?(求解)
目的:写一delphi函数用于解数据包(包中含多帧数据,不同的帧合成的一个大包),将每帧数据放入数组中,返回。
数组的长度以包中的帧的个数来决定。
type
Tarray:array of string;
Function AngularTransduceDataPacketToFrame(DataPacket:string):Tarray;
var
i,k: integer;
begin
k:=1;
setlength(Result,5);//5是包的数据帧个数,实为变量,为了简化输入常量
for i := 0 to 5 do
begin
Result[i]:=copy(DataPacket,k,2);
k:=k+2
end;
end;
procedure TForm1.Button35Click(Sender: TObject);
var
Str:string;
a:Tarray;
begin
Str:='77100084000021551000366800000000B8';
a:=AngularTransduceDataPacketToFrame(str);
showmessage(a[1]);
end;
程序点击button3崩溃,错误:Project project1.exeraised exception class Eacessviolation with message 'Access violation at address 004045AC in module 'Project1.exe .Read of address 00000046.process stopped use step or Run to continue