各位好:   
              我在做一个小程序,我将许多信息存在一条字符串中,现在要从字符串中分别截取这些信息,比如:要从
'abc|def|ghi|jkl|mno|pqr|tyv|wsyz;中截取'abc','def','ghi',请各位指教该怎样截取,请给出代码?   
        谢谢 

解决方案 »

  1.   

    var
      s: TStringList;
    begin
      s := TStringList.Create;
      try
        s.Delimiter := '|';
        s.DelimitedText := 'abc |def |ghi |jkl |mno |pqr |tyv |wsyz';
        Caption := s.Strings[3];
      finally
        s.Free;
      end;
    end;
      

  2.   

    'abc ¦def ¦ghi ¦jkl ¦mno ¦pqr ¦tyv ¦wsyz'
    观察你的字符串特点,都是以 ¦ 符号分割的。
    代码如下:
    var
      StrLst: TStrings;
      i: integer;
      Str: String;
    begin
      StrLst := TStringlist.create;
      try
        Str := 'abc |def |ghi |jkl |mno |pqr |tyv |wsyz';
        StrLst.Text := StringReplace(Str, '|', #13, [rfReplaceAll]);  //将 | 都替换为 #13回车
        for i := 0 to StrLst.Count - 1 do
        begin
          ShowMessage(StrLst[i]); //然后就可以依次读取每一个符号了。
        end;
      finally
        StrLst.Free;
      end;
    end;
      

  3.   

    refer to match function on Lisp language book.