type
   TPackHead = packed Record
     CMD     :Byte;
     BodySize:Word;
   end;   TReq_Body = packed Record
      ParmCount : Byte;
   end;
   TResponse = packed Record
      head : TPackHead;
      body : TRes_Body;
   end; var
   Response : TResponse;
   TepArr   :  array of byte;   setlength(TepArr,4);
如何将TepArr这个数组中的内容传到Response里,谢谢。

解决方案 »

  1.   

    最主要问题就是word类型怎么处理。
      Response.head.CMD := TepArr[0];
      Response.head.BodySize :=            //这里不知道怎么办
      Response.body.ParmCount := TepArr[3];或者还有什么更好的方法实现吗?
      

  2.   

    move(TepArr[0], Response, 4)
      

  3.   

    TPackHead = packed Record 
        CMD    :Byte; 
        BodySize:Word; 
      end; 
    改成
    PPackHead = ^TPackHead;
    TPackHead = packed Record 
        CMD    :Byte; 
        BodySize:Word; 
      end; 
    直接引用指向结构体的指针即可,也不用MOVE了,
      

  4.   

    哪用copy,直接用啊
    var 
      ResponsePtr : ^TResponse; 
      TepArr  :  array of byte;   setlength(TepArr,4); 
      
      ResponsePtr := @TepArr[0];指针不就这点方便吗,copy来copy去的,要指针定义来做啥。