因为有多少个byte数组,事先并不知道,也不确定。
我以前用的办法是建立一个record,该record里面有一字段为byte数组。将该record加到Tlist中。
请问还有其它的好办法吗?

解决方案 »

  1.   

    二维动态数组啊:
    type 
      TByteArr = array of Byte;
      PByteArr = ^TByteArr;
      TByteArrS = array of PByteArr;不过还是用TList好,你没有必要再声明一个记录啊,把Byte数组指针存入TList即可。
      

  2.   

    fRecord :array of byte;
    size:integer;
    begin
      size:=....;
      getmem(fRecord,size);
      ...
      freemem(fRecord);
    end;
      

  3.   

    二维
    var buffer :array of array of byte;
        size,count:integer;
    begin
        size:=100;
        count:=100;
        setlength(buffer,size,count);
        buffer[0,0]:=88;
        showmessage(chr(buffer[0,0]));
    end ;
      

  4.   

    jinjazz(我是jin)的方法有问题,因为那个count不确定的。
    星星的办法好像可行,我在研究。另外,为了感谢大家的鼎力相助,我要把分数扩大超过100分,请问有什么办法?
      

  5.   

    如果用星星的那个Tlist的办法,还是有点问题。
    我把Tlist设置成全局变量。两个线程都对这个TList操作,一个是add,一个是delete。
    Tlist中add数组的地址的话,那个byte数组的地址有可能有重复,为什么呢?因为add线程中,当生成了一个byte数组就add这个数组到Tlist中去。很有可能,这个byte数组的地址没有变化,而里面的内容改变了。