构造一个函数,其返回值有多个内容的。应该怎么构造??
比如说我要构造一个得到门禁机信息的函数。其返回值应该包括这个门禁机的号码(Address),板号(boardID),出入记录多少(nCord),人员信息多少(nPerson)及系统时间(SysTime)。。
我用了一个发送过程Transmit和一个接收过程ReadData,发送的是字符串,接收的也是一个整的字符串。。我构造的函数如下:
Function GetDoorInf(Address:integer):shortstring;//提取门禁机的信息
var
   i:integer;
   a,b,c,d:shortstring;
begin
    i:=4;
while i>0 do
begin
   bagsize:=chr($03);
   s0:=start;//同步字符
   s1:=start;
   s2:=chr($81);//命令字符
   s3:=chr(Address);
   s4:=bagsize;
   send:=s0+s1+s2+s3+s4;//发送字符串
   Transmit;//发送命令   ReadData;//接收命令
   Result:=Receive;//接收字符串Receive
   Raddress:=r3;
   r0:=copy(Receive,1,1);
   r1:=copy(Receive,2,1);
   r2:=copy(Receive,3,1);
   r3:=copy(Receive,4,1);
   bagnumber:=copy(Receive,5,2);
   r4:=copy(Receive,7,9);
 if r2=chr($91) then//数据处理与分离
    BoardID:=StrToInt(copy(r4,1,1));
    a:=copy(r4,2,1);
    nperson:=ord(a[1]);
    b:=copy(r4,3,2);
    nOpenCount:=ord(b[1])*ord(b[2]);
    c:=copy(r4,5,2);
    MDelay:=inttostr(ord(c[1]))+inttostr(ord(c[2]));
    d:=copy(r4,7,3);
    SupOrder:=inttostr(ord(d[1]))+inttostr(ord(d[2]))+inttostr(ord(d[3]));
    if r2=chr($C1) then
          i:=i-1;
    end
end;
请问为什么我调用的时候就错了,这样构造对不?要不要把发送和接收分开,不在同一个函数里啊?接收另外判断吗??~~~~~~~~~~~~~~~~~~~~~~~~  
 世界因为你我而年轻!
☆★○●◎◇◆□■△▲※