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。
展开
 我来答
suetrain
推荐于2016-02-21 · TA获得超过178个赞
知道小有建树答主
回答量:244
采纳率:100%
帮助的人:185万
展开全部
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.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
路瓃pv
2010-06-16 · TA获得超过961个赞
知道小有建树答主
回答量:653
采纳率:0%
帮助的人:544万
展开全部
//根据字符串,拆分字符串,相当于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吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
softwb
2010-06-16 · TA获得超过451个赞
知道小有建树答主
回答量:763
采纳率:0%
帮助的人:383万
展开全部
sStrList .Delimiter := '*';
sStrList .DelimitedText :=sStrList.Text;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刘选治
2010-06-17 · TA获得超过185个赞
知道小有建树答主
回答量:345
采纳率:50%
帮助的人:167万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式