现有一个字符串,形如
3;a.txt;b.txt;c.txt
其中,3是指分组数量,即后面的分组名称数;
每个分组间用分号进行隔开.现想把每一个分组名称提取出来,函数应该如何写,自己试了几次,都是错的.
procedure TForm1.BitBtn1Click(Sender: TObject);
var
s,s1,t:string;
i,j:integer;
myarray: array[0..3] of string;
karray: array[0..3] of integer;
begin
s:='3;123.txt; 456.txt;789.txt';
s1:=copy(s,1,1); for i:=1 to length(s) do begin
t:=copy(s,i,i+1);
if t=';' then
begin
karray[i]:=i;
end; for j:=0 to strtoint(s1)-1 do
begin
myarray[j]:=copy(s,karray[j],karray[j+1]); end;
end;
end;请帮助.
3;a.txt;b.txt;c.txt
其中,3是指分组数量,即后面的分组名称数;
每个分组间用分号进行隔开.现想把每一个分组名称提取出来,函数应该如何写,自己试了几次,都是错的.
procedure TForm1.BitBtn1Click(Sender: TObject);
var
s,s1,t:string;
i,j:integer;
myarray: array[0..3] of string;
karray: array[0..3] of integer;
begin
s:='3;123.txt; 456.txt;789.txt';
s1:=copy(s,1,1); for i:=1 to length(s) do begin
t:=copy(s,i,i+1);
if t=';' then
begin
karray[i]:=i;
end; for j:=0 to strtoint(s1)-1 do
begin
myarray[j]:=copy(s,karray[j],karray[j+1]); end;
end;
end;请帮助.
var
list:TStringList;
begin
list := TStringList.Create;
list.Delimiter := ';';
list.DelimitedText := '3;a.txt;b.txt;c.txt';
end;
这样
list.Strings[0]是3
list.Strings[1]是a.txt
list.Strings[2]是b.txt
list.Strings[3]是c.txt
const
S = '3;123.txt;456.txt;789.txt';
var
List: TStrings;
myarray: array[0..2] of string;
I: Integer;
begin
List := TStringList.Create;
List.Text := StringReplace(S,';',#10,[rfReplaceAll]);
try
for I := 0 to StrToInt(List.Strings[0])-1 do
myarray[I] := List.Strings[I+1];
finally
List.Free;
end;
end;