uses StrUtils;procedure StrToStrings(S: AnsiString; Sep: AnsiString; const List: TStrings); var I, L: Integer; Left: AnsiString; begin Assert(List <> nil); List.Clear; L := Length(Sep); I := Pos(Sep, S); while (I > 0) do begin Left := LeftStr(S, I - 1); List.Add(Left); Delete(S, 1, I + L - 1); I := Pos(Sep, S); end; if S <> '' then List.Add(S); end;
while Pos(',',Str)>0 do begin Site:=Pos(',',); SubStr := Copy(Str,1,Site-1); Delete(Str,1,Site); end;
var i, site: integer; SubStr: array of string; begin i:=0; while Pos(',',Str)>0 do begin Site:=Pos(',',Str); SubStr[i] := Copy(Str,1,Site-1); Delete(Str,1,Site); inc(i); end;
可以这样使用 var s:string; i,k:integer; ss:array of string; begin s:='dsga;dsg;sdfew;swer;sfds;wer;'; for i:=1 to length(s) do begin if s[i]=';' then count:=count+1; end; setlength(ss,count); for i:=1 to length(s) do begin if s[i]<>';' then ss[k]:=ss[k]+s[i] else k:=k+1; end; 这样应该可以解决你的问题了!!! 谢谢了,给分吧!!!
var
I, L: Integer;
Left: AnsiString;
begin
Assert(List <> nil);
List.Clear;
L := Length(Sep);
I := Pos(Sep, S);
while (I > 0) do
begin
Left := LeftStr(S, I - 1);
List.Add(Left);
Delete(S, 1, I + L - 1);
I := Pos(Sep, S);
end;
if S <> '' then
List.Add(S);
end;
begin
Site:=Pos(',',);
SubStr := Copy(Str,1,Site-1);
Delete(Str,1,Site);
end;
SubStr: array of string;
begin
i:=0;
while Pos(',',Str)>0 do
begin
Site:=Pos(',',Str);
SubStr[i] := Copy(Str,1,Site-1);
Delete(Str,1,Site);
inc(i);
end;
var
s:string;
i,k:integer;
ss:array of string;
begin
s:='dsga;dsg;sdfew;swer;sfds;wer;';
for i:=1 to length(s) do begin
if s[i]=';' then
count:=count+1;
end;
setlength(ss,count);
for i:=1 to length(s) do begin
if s[i]<>';' then
ss[k]:=ss[k]+s[i]
else k:=k+1;
end;
这样应该可以解决你的问题了!!!
谢谢了,给分吧!!!