use TStringListprocedure ExtractItems(S: string; L: TStrings; Seperator: string = ','); var sTmp: string; i: integer; begin L.Clear; sTmp := ''; for i := 1 to Length(S) do begin if S[i] <> Seperator then begin sTmp := sTmp + S[i]; end else begin L.Add(sTmp); sTmp := ''; end; end; L.Add(sTmp); end;Example: var lst: TStringList; i: integer; ss: string; begin ss := '123,456,789'; lst := TStringList.Create; ExtractItems(ss, lst); for i := 0 to lst.Count - 1 do begin //lst.strings[i] = 123 or 456 or 789 end; lst.Free; end;
然后使用循环找到一个,删除一个,函数具体用法看一下帮助就知道了
var s : string;
begin
s:='123,13';
delete(s,pos(',',s),1);
showmessage(s);
end;
begin
..;
NewStr := StringReplace(OldStr,',','',[rfReplaceAll]);
..;
end;
subStr := LeftStr(Str, 3); //add to array
Str := RightStr(Str, Length(Str) - 3);
var
sTmp: string;
i: integer;
begin
L.Clear;
sTmp := '';
for i := 1 to Length(S) do begin
if S[i] <> Seperator then begin
sTmp := sTmp + S[i];
end else begin
L.Add(sTmp);
sTmp := '';
end;
end;
L.Add(sTmp);
end;Example:
var
lst: TStringList;
i: integer;
ss: string;
begin
ss := '123,456,789';
lst := TStringList.Create;
ExtractItems(ss, lst);
for i := 0 to lst.Count - 1 do begin
//lst.strings[i] = 123 or 456 or 789
end;
lst.Free;
end;