delphi如何分割一个TStringList成多个TStringList
如何按照指定字符分割一个TStringList成多个TStringList例如:sStrList:=TStringList.Create;sStrList.Add('a'...
如何按照指定字符分割一个TStringList成多个TStringList
例如:
sStrList := TStringList.Create;
sStrList.Add('a');
sStrList.Add('b');
sStrList.Add('*');
sStrList.Add('c');
按照*进行分割, 分割成两个TStringList。 展开
例如:
sStrList := TStringList.Create;
sStrList.Add('a');
sStrList.Add('b');
sStrList.Add('*');
sStrList.Add('c');
按照*进行分割, 分割成两个TStringList。 展开
展开全部
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
SrsList,DestList1,DestList2: TStringList;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
SrsList:=TStringList.Create;
SrsList.Add('a');
SrsList.Add('b');
SrsList.Add('*');
SrsList.Add('c');
SrsList.Add('d');
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
SrsList.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: Integer;
begin
DestList1:=Tstringlist.Create;
DestList2:=TStringlist.Create;
try
i:=SrsList.IndexOf('*');
for j:=0 to i-1 do
DestList1.Add(SrsList.Strings[j]);
for j:=i+1 to SrsList.Count-1 do
DestList2.Add(SrsList.Strings[j]);
Memo1.Lines.AddStrings(DestList1);
Memo2.Lines.AddStrings(DestList2);
finally
DestList1.Free;
DestList2.Free;
end;
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
SrsList,DestList1,DestList2: TStringList;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
SrsList:=TStringList.Create;
SrsList.Add('a');
SrsList.Add('b');
SrsList.Add('*');
SrsList.Add('c');
SrsList.Add('d');
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
SrsList.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: Integer;
begin
DestList1:=Tstringlist.Create;
DestList2:=TStringlist.Create;
try
i:=SrsList.IndexOf('*');
for j:=0 to i-1 do
DestList1.Add(SrsList.Strings[j]);
for j:=i+1 to SrsList.Count-1 do
DestList2.Add(SrsList.Strings[j]);
Memo1.Lines.AddStrings(DestList1);
Memo2.Lines.AddStrings(DestList2);
finally
DestList1.Free;
DestList2.Free;
end;
end;
end.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//根据字符串,拆分字符串,相当于vb中的split函数
function SplitString(const Source,ch:string):TStringList;
var
temp:String;
i:Integer;
begin
Result:=TStringList.Create;
//如果是空自符串则返回空列表
if Source=''
then exit;
temp:=Source;
i:=pos(ch,Source);
while i<>0 do
begin
Result.add(copy(temp,0,i-1));
Delete(temp,1,i);
i:=pos(ch,temp);
end;
Result.add(temp);
end;
用这个的SplitString吧
function SplitString(const Source,ch:string):TStringList;
var
temp:String;
i:Integer;
begin
Result:=TStringList.Create;
//如果是空自符串则返回空列表
if Source=''
then exit;
temp:=Source;
i:=pos(ch,Source);
while i<>0 do
begin
Result.add(copy(temp,0,i-1));
Delete(temp,1,i);
i:=pos(ch,temp);
end;
Result.add(temp);
end;
用这个的SplitString吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sStrList .Delimiter := '*';
sStrList .DelimitedText :=sStrList.Text;
sStrList .DelimitedText :=sStrList.Text;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
alist:=Tstringlist.create;
blist:=Tstringlist.create;
clist:=Tstringlist.create;//blist,clist是分割后的子集
for i:=0 to cnt do
begin
blist.add(alist[i]);
end;
for j:=cnt+1 to alist.count do
begin
clist.add(alist[j]);
end;
分割后两个子list大小为1-cnt 和cnt-alist。count
blist:=Tstringlist.create;
clist:=Tstringlist.create;//blist,clist是分割后的子集
for i:=0 to cnt do
begin
blist.add(alist[i]);
end;
for j:=cnt+1 to alist.count do
begin
clist.add(alist[j]);
end;
分割后两个子list大小为1-cnt 和cnt-alist。count
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询