如果是读取|的位置,那就需要遍历了,参考代码 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;
还可以用TStringList分割 var list:TStringList; begin list := TStringList.Create; list.Delimiter := '|'; list.DelimitedText := '6222600630000034274|刘思|162|'; end;
uses IdStrings; SplitColumns
判斷字符串是否包含子串可以用以下函數(需收用單元StrUtils)。 if AnsiContainsText('6222600630000034274|刘思|162|','|') then showmessage('ok');
var
str:TStrings;
beign
str:+TStringList.create;
str.Clear;
s:='6222600630000034274|刘思|162|';
ExtractStrings(['|'], [], s, str);
end;
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;
还可以用TStringList分割
var
list:TStringList;
begin
list := TStringList.Create;
list.Delimiter := '|';
list.DelimitedText := '6222600630000034274|刘思|162|';
end;
uses IdStrings;
SplitColumns
if AnsiContainsText('6222600630000034274|刘思|162|','|') then
showmessage('ok');