小弟也有这个问题,那setlength岂不是白调用了?

解决方案 »

  1.   

    注意string类型的空间分配是动态的
      

  2.   

    当然是这样的了,string类型的数据delphi自动会处理的。
    如果是其它的类型就不会是这样的了。
      

  3.   

    会重新分配空间吗?有length是对值求长还是对别的呢?不太明白
    应该这样理解吧,分配长些,然后重新分配小些可以
    晕,原来你用的是string啊!!!!!!!!!
    害我调了半天程序,我还以为是array of char呢。
      

  4.   

    会重新分配空间吗?有length是对值求长还是对别的呢?不太明白
    应该这样理解吧,分配长些,然后重新分配小些可以
    晕,原来你用的是string啊!!!!!!!!!
    害我调了半天程序,我还以为是array of char呢。
      

  5.   

    说说你想set Length的目的!
      

  6.   

    length是取得string的值,string改变,给string分配的空间当然改变了
      

  7.   

    var
    i:integer; 
    S:string;
    begin
      setlength(s,1024);
      i:=Length(s)//i=1024
      //s:='';    //or s:='test',i:=Length(s),i=4
      
      move(XXX,s[1],count);///这样就不会重新分配  i:=Length(s);//i=0;
    end