如:1234:5678:1122:3354
分离后结果为
1234
5678
1122
3354要求速度要快,死方法就不要了

解决方案 »

  1.   

    pos定位,
    copy()得到所要的结果
      

  2.   

    给你写出来吧
    var
      s,tmps:string;
      i:integer;
    begin
      s:='aaaa;bbbb;ddddd;eeee';
      tmps:=s;
      i:=pos(';',tmps);
      while i<>0 do
      begin
        showmessage(copy(tmps, 0, i - 1));
        delete(tmps, 1, i);
        i := pos(';',tmps);
      end;
      

  3.   

    楼上
    qxj(小小小小小小程序员)
    已说了, 不要再说了吧
      

  4.   

    感谢qxj(小小小小小小程序员)
    还有其他高招吗?
      

  5.   

    var
     strstemp:tstringlist;
     i:integer;
    begin
     strstemp:=tstringlist.Create ;
     strstemp.Delimiter :=':';
     strstemp.DelimitedText:=s;
    for i:=0 to s.count-1 do
     showmessage(s[i]);
    strstemp.free
    end;
      

  6.   

    zjybestzjybest(zjybestzjybest)不错,还有吗
      

  7.   

    while length(s) > 0 do
    begin
      ss.add(copy(s,1,pos(':',s)));
      s := copy(s,pos(':',s),length(s));
    end;
      

  8.   

    ss :Tstringlist;
    s := '1234:5678:1122:3354'
      

  9.   

    qxj(小小小小小小程序员) 有一个BUG最后一个数据不能显示出来因为最后一个数据没有分隔符
      

  10.   

    zjybestzjybest(zjybestzjybest),你的那个s是什么类型的啊?
      

  11.   

    s是一个STRING类型的数据就是'1234:5678:1122:3354'
      

  12.   

    不好意思,少了句,其实最后TMPS中所得到的就是最后一个数据