比如:
有个string 
'江苏20031202'
我怎么取出前4位'江苏'?
怎么取出后4位'1202'?

解决方案 »

  1.   

    var
     I:Integer;
    begin
      i:=1;
      while CharLength(edit1.Text, i)<>1 do
        i:=i+1;
      showmessage(copy(edit1.Text,1,i-1));
      showmessage(copy(edit1.Text,i,length(edit1.Text)));
    end;
      

  2.   

    copy('江苏20031202',1,4)
    copy('江苏20031202',length('江苏20031202')-4,4)
      

  3.   

    Uses  
       ...StrUtils;const
      yourstring = '江苏20031202';var 
      tempString1,tempString2 : string;
      
      tempString1 := LeftStr(yourstring,4);
      tempString2 := RightStr(yourstring,4);
      

  4.   

    UP楼上
      tempString1 := LeftStr('江苏20031202',4);
      tempString2 := RightStr('江苏20031202',4);
      

  5.   

    Uses
      ...,StrUtils;...
      tempString:=MidStr(<>,startWith,length);
    ...
    其中,<>为你的原来字符串,startWith为起始位置(从1开始),length为你要取的长度,但请你注意,如果你要是取字符,用的是UNICODE编码,换句话,中文和英语(包括数字)都是同等对待,即'江苏'和'02'都是两个字符。如果你要算字节,可以用其它方法,好像copy()取得就是字节。