定义: 
type
  pm= packed record          { IO记录 }
  Name:string[16];   { IO名称               }
  CHn:Byte;          {输入通道号  }
  Pvh:Double;        { 量程上限 }
  Pvl:Double;        { 量程下限 }
  DW:string[8];      { 量程单位 }
  Bjh:Double;        { 报警上限 }
  Bjl:DOuble;        { 报警下限 }
  BjCHn:Byte;        { 报警输出通道 }
  Pv:Double;         { 测量值      }
  Code:Word;         { 测量值代码  }
  BZ1:Byte;
  BZ2:Byte;
  BZ3:Byte;
 end;IOtalab:array[0..3]of pm;Sbuf : Array[0..8191] of Byte;如何将IOtalab表  存放到Sbuf里面?、、、、、、、、、、
请教。。

解决方案 »

  1.   


    用了copymemory  但不行
      

  2.   

    把IOtalab写入到stream中,然后再把stream写入到Sbuf 中
      

  3.   

    两种方法:1. 使用move之类的复制函数;
    2. 使用变体记录,需要稍微改变一下类型定义:
      TSbuf = packed record
        case integer of
        0: (IOtalab: array[0..3] of pm);
        1: (sbuf: Array[0..8191] of byte);
      end;var
      IOtalab: array[0..3]of pm;
      Sbuf: TSbuf;
    使用:
      sbuf.iotalab[1].name := 'hello';
      sbuf.sbuf[8000] := 123;
      

  4.   


    初学delphi   第一次听说Stream能告诉我具体方法么 ?、、、、、、因为急用