s:='美容师,张三,01|烫染师,李四,02|美容师,王五,03|美发师,赵六,03|美发师,刘七,01|如果只取后面二段组成一个s1:='张三,01|李四,02|王五,03|赵六,03|刘七,01|

解决方案 »

  1.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
      s, s1: string;
      i, j: Integer;
      ss: TStringList;
    begin
      s:='美容师,张三,01|烫染师,李四,02|美容师,王五,03|美发师,赵六,03|美发师,刘七,01|';
      ss := TStringList.Create;
      i := Pos('|', s);
      while i <>0 do
      begin
        ShowMessage(Copy(s, 1, i));
        ss.Add(Copy(Copy(s, 1, i), Pos(',', Copy(s, 1, i-1)) + 1, Length(Copy(s, 1, i))));
        s := Copy(s, i+1, Length(s)- i + 1);
        i := Pos('|', s);
      end;
      for j := 0 to ss.Count - 1 do
      begin
        s1 := s1 + ss.Strings[j];
      end;
      ShowMessage(s1);
    end;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      s, s1: string;
      p: Integer;
    begin
      s := '美容师,张三,01|烫染师,李四,02|美容师,王五,03|美发师,赵六,03|美发师,刘七,01|';
      s1 := '';
      p := 1;
      while p <= Length(s) do
      begin
        // skip first field
        while (p <= Length(s)) and (s[p] <> ',') do Inc(p);
        // skip ','
        Inc(p);
        // add other fields until reach '|'
        while (p <= Length(s)) do
        begin
          s1 := s1 + s[p];
          Inc(p);
          if s[p-1] = '|' then break;
        end;
      end;
      ShowMessage(s1);
    end;
      

  3.   


    procedure TForm1.Button1Click(Sender: TObject); 
    var 
      s, s1: string; 
      p: Integer; 
    begin 
      s := '美容师,张三,01|烫染师,李四,02|美容师,王五,03|美发师,赵六,03|美发师,刘七,01|'; 
      s1 := ''; 
      p := 1; 
      while p <= Length(s) do 
      begin 
        // skip first field 
        while (p <= Length(s)) and (s[p] <> ',') do Inc(p); 
        // skip ',' 
        Inc(p); 
        // add other fields until reach '|' 
        while (p <= Length(s)) do 
        begin 
          s1 := s1 + s[p]; 
          Inc(p); 
          if s[p-1] = '|' then break; 
        end; 
      end; 
      ShowMessage(s1); 
    end;