有一组字符串如下:
adf---ASDF
cdgjk---ERT三个---号前的字符数是任意的,同样三个---号后的字符数也是任意的。
1、截取---前的字符串。
2、截取---后的字符串。

解决方案 »

  1.   

    供参考 //假设:待处理字符串中不含单个-字任,否则需作变通var
      s1: string;
      slist: TStringList;
    begin
      s1 := 'adf---ASDF';
    //  s1 := 'cdgjk---ERT';  slist := TStringList.Create;
      s1 := StringReplace(s1, '---', '-', [rfReplaceAll]);
      slist.Delimiter := '-';
      slist.DelimitedText := s1;
      ShowMessage(slist[0] + ' ' + slist[1]);
      slist.Free;
      

  2.   

    写个函数:procedure SplitString(S: String; var R, T: String);
    var
      i : Integer;
    begin
      R := '';
      T := '';
      i := Pos('---', S);
      if i > 0 then
      begin
        R := Copy(S, 1, i - 1);
        T := Copy(S, i + 3, Length(S) - i - 2);
      end;
    end;
    调用的例子:var
      R, T: String;
    begin
      SplitString('adf---ASDF', R, T);
      ShowMessage(R + ' , ' + T);
    end;