如读取的每个"|"的字符6222600630000034274|刘思|162|

解决方案 »

  1.   

    如果楼主是要读取|分割开来的字符的话,可以使用
    var
      str:TStrings;
    beign
    str:+TStringList.create;
    str.Clear;
    s:='6222600630000034274|刘思|162|';
    ExtractStrings(['|'], [], s, str);
    end;
      

  2.   

    如果是读取|的位置,那就需要遍历了,参考代码
    var
      s:stirng;
      str:TStrings;
      i,j:integer;
    begin
      j:=0;
      str:=TStringList.create;
      str.Clear;
      s:='6222600630000034274|刘思|162|'
      while s<>'' do
      begin
        i:=pos('|',s);
        j:=j+i;//|在字符串中的位置
        str.add(inttostr(j));
        if i=0 then
          s:=''
        else
        beign
          s:=copy(s,i+1,length(s)-i);
        end;
      end;
    end;
      

  3.   


    还可以用TStringList分割
    var
      list:TStringList;
    begin
      list := TStringList.Create;
      list.Delimiter := '|';
      list.DelimitedText := '6222600630000034274|刘思|162|';
    end;
      

  4.   


    uses IdStrings;
    SplitColumns
      

  5.   

    判斷字符串是否包含子串可以用以下函數(需收用單元StrUtils)。
    if AnsiContainsText('6222600630000034274|刘思|162|','|') then
      showmessage('ok');