解决方案 »

  1.   

       MTStringList := TStringList.Create;   MTStringList.Delimiter := ',';   MTStringList.DelimitedText:= Mtemp; 确实存在遇到空格时也会截断的
      

  2.   

    class procedure TStrOper.str_intercept(s: string; Separator: char;
      Terms: TStrings);
    var
      hs : string;
      p : integer;
    begin
      Terms.Clear;           // 清空StringList中的所有内容
      if Length(s)=0 then   // 字串长度0就退出
      begin
        Exit;
      end;
      p:=Pos(Separator,s);
      while P<>0 do
      begin
        hs:=Copy(s,1,p-1);   // 拷贝字串
        Terms.Add(hs);       // 添加到LIST中
        Delete(s,1,p);       // 删除刚拷贝的字串
        p:=Pos(Separator,s); // 寻找下一个和指定字符的字串
      end;
      if Length(s)>0 then
        Terms.Add(s);        // 把盛下的字串添加到TERM中
    end;
    注意:Terms传递时必须在先初始化,否则会报错的。
      

  3.   

     MTStringList := TStringList.Create;
     MTStringList.StrictDelimiter := True;
      MTStringList.Delimiter := ',';
      MTStringList.DelimitedText:= Mtemp;
      

  4.   

    忘了说参数了,补充一下。
    s:就是你要分隔的原字符串。
    Separator:就是按什么字符分隔(你这传逗号就行了)
    Terms:就是分隔字符串后存储的TStringList对象。
      

  5.   

    自己实现一个类似 Split 的方法还是很有必要的.
      

  6.   

    Count := ExtractStrings([','],[],PChar('a,b,cd,efg,aaa,acdf'),StrList);StrList返回你想要的按,号分割的StringList,
    Count返回行数
      

  7.   

    MTStringList.StrictDelimiter := True;wr960204 不知道王大侠的d是什么版本? 我以为我不知道有这个东西呢!  
      

  8.   

    Count := ExtractStrings([','],[],PChar('a,b,cd,efg,aaa,acdf'),StrList); 这个函数一直没有被我用! 今天看眼界了! 经测试这个应该可以实现楼主的功能!