我设定了一个record之后添加数据,添加数据之后,想定期下载数据替换以前的数据,是不是需要先清除record中的数据呢,应该如何清除呢?

解决方案 »

  1.   

    自己写个函数对record内的每项数据初始化
      

  2.   

    不用清除如果新数据量>=原数据量,可以直接修改(增加)原数据的内容
    如果新数量<原数据量,需要把多于的数据项清除(当然,不是必须的,看你的情况了)
      

  3.   

     type
       TRec = record
        A : integer;
        B : integer;
        C : integer;
      end;
    var
       rec : Trec;
    begin
      //第一次取值。
      Rec.a := 0;
      Rec.b := 0;
      rec.c := 0;  //下載數據後開始更新
      rec.a := 1;
      rec.b := 1;
      rec.c := 1; 
    end;
      

  4.   

    我详细说一下我遇到的问题:record的声明为:
      PData = ^TData;
      TData = record
        name:string;
        url:string;
        time:string;
        info:string;
        img:Integer;
      end;
      livedata:PData;
    申明后下载了XML向  livedata中加添数据并向listbox中添加数据:
        
    new(livedata);
        livedata.url:= iNode.Attributes['url'];
        livedata.time:=iNode.Attributes['time'];
        livedata.info:=iNode.Attributes['info'];
        livedata.img:=iNode.Attributes['img'];
        livedata.name:=iNode.Attributes['name'];
        listbox.Items.AddObject(''+iNode.Attributes['name']+#9 + ''+iNode.Attributes['info'],TObject(livedata));添加完毕后,定期下载XML重新写入,在写入的时候使用listbox.Items.Clear;清除listbox中的数据。但是循环多次以后会出现错误:livedata:=pdata(listbox.Items.Objects[index]);这一句的时候出现
      

  5.   

    啥错误?out of bounds?
      

  6.   

    程序运行的时候内存会一直上升氦?或者说,有和New对应的Dispose没?
      

  7.   

    没有和New对应的Dispose,,比较垃圾,不是很懂
      

  8.   

    new(livedata);
    你没释放啊