问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Delphi怎么将TStringList按照分割符‘end’分割成多个TStringList

发布网友 发布时间:2022-05-05 06:47

我来回答

1个回答

热心网友 时间:2023-10-13 17:25

用TObjectList管理分割后的StringList(替代List1,2,3),循环List,和end比较(用了不分大小写的CompareText,否则用CompareString),下面是测试代码,注意:TObjectList需要Uses Contnrs。

uses
  Classes, SysUtils, Contnrs     
  ...
  
var
  ErrorMsg: String;
  List: TStringList;
  objList: TObjectList;
  i : Integer;
  flag_addnew : Boolean;  
begin
  objList := TObjectList.Create;
  List:= TStringList.Create;
  try
     List.add('task');
     List.add('A');
     List.add('A');
     List.add('end');
     List.add('task');
     List.add('b');
     List.add('b');
     List.add('end');
     List.add('task');
     List.add('c');
     List.add('c');
     List.add('end');
     writeln('Total count: '+IntToStr(List.Count));
     writeln(List.Text);

     flag_addnew := true;
     for i := 0 to List.Count-1 do
     begin
       if CompareText(List[i], 'end') <> 0 then
       begin
         if flag_addnew then
         begin
           objList.Add(TStringList.Create);
           flag_addnew := false;
         end;
         TStringList(objList[objList.Count-1]).Add(List[i]);
       end
       else
         flag_addnew := true;
     end;

     for i := 0 to objList.Count-1 do
     begin
       writeln('------ '+ IntToStr(i+1) + ' ------');
       writeln(TStringList(objList[i]).Text);
     end;
  finally
    List.Free;
    objList.Free;
  end;
end;

输出:

------ 1 ------
task
A
A

------ 2 ------
task
b
b

------ 3 ------
task
c
c

热心网友 时间:2023-10-13 17:25

用TObjectList管理分割后的StringList(替代List1,2,3),循环List,和end比较(用了不分大小写的CompareText,否则用CompareString),下面是测试代码,注意:TObjectList需要Uses Contnrs。

uses
  Classes, SysUtils, Contnrs     
  ...
  
var
  ErrorMsg: String;
  List: TStringList;
  objList: TObjectList;
  i : Integer;
  flag_addnew : Boolean;  
begin
  objList := TObjectList.Create;
  List:= TStringList.Create;
  try
     List.add('task');
     List.add('A');
     List.add('A');
     List.add('end');
     List.add('task');
     List.add('b');
     List.add('b');
     List.add('end');
     List.add('task');
     List.add('c');
     List.add('c');
     List.add('end');
     writeln('Total count: '+IntToStr(List.Count));
     writeln(List.Text);

     flag_addnew := true;
     for i := 0 to List.Count-1 do
     begin
       if CompareText(List[i], 'end') <> 0 then
       begin
         if flag_addnew then
         begin
           objList.Add(TStringList.Create);
           flag_addnew := false;
         end;
         TStringList(objList[objList.Count-1]).Add(List[i]);
       end
       else
         flag_addnew := true;
     end;

     for i := 0 to objList.Count-1 do
     begin
       writeln('------ '+ IntToStr(i+1) + ' ------');
       writeln(TStringList(objList[i]).Text);
     end;
  finally
    List.Free;
    objList.Free;
  end;
end;

输出:

------ 1 ------
task
A
A

------ 2 ------
task
b
b

------ 3 ------
task
c
c

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? delphi7 tqueue引用哪个单元 怎么让网页读取数据库后倒序显示 bat获取日期,bat文本查找复制,bat截取文本 hp1050打印机怎样改连供 求高手,sql if日期为10天之内,标题后面加new图标 外径12.67内孔9.53的美制t型牙是多大的 小肠肿瘤:神经内分泌瘤,pT4N1M0,G1,III期,PS1分,NRS0分 请教文言文翻译 2015`06`10号生产的900克的秦岭洋槐蜂蜜是否合格瓶装图是怎样的 如何判断闯红灯 成熟洋槐蜂蜜(天意)2兑水喝怎么有总类似化妆品的味道? 羽状复叶,对生,树皮细纵裂。很像国槐,但是种子是一个个的圆形果。是什么植物? 洋槐树的果子是什么样的?(图片) 闯红灯如何判定? 窗前的洋槐为什么说这是我莫大的遗憾 国槐图例的简单画法 国槐这样是怎么回事有照片 如何判断闯红灯? 简笔画双鱼座上什么颜色 国槐树结果实吗? 求助:VB运行时错误\&quot;3704\&quot;,对象关闭时,不允许操作 ctnrs是什么意思 请问,网卡和网卡驱动属于OSI&#47;ISO七层及TCP&#47;IP四层网络模型的哪一层??? 退烧贴好还是退烧肚脐贴好?退烧贴贴在哪个部位较好?退烧贴应在几度的情况下使用好?退烧贴哪个牌子最好 如何共享小米手环数据 怎么用安卓手机登录电脑版的QQ邮箱,为什么怎么点都是触屏版的,能用的的方法追加悬赏 解酒饮料哪家好? 江大不倒翁解酒饮料的主要配料有没有副作用 广药酒搭档解酒饮料与江大不倒翁真的有关系吗? 二手微单相机推荐 现在解酒饮料那么多,醒久舒、三氿清、九芝堂......那么多牌子,请问那个比较? 想入手一个二手微单,预算一千元左右,买来练习一下,求推荐一款相机? 江大不倒翁解酒饮料大家怎么处理的 醒酒饮料谁喝过?求推荐 青岛不倒翁解酒饮料代理商电话 2000以内的入门级二手微单相机推荐 解酒除酒气的饮料什么比较好? 2500预算左右,推荐一个相机,二手也也行。主要拍风景。大家给我推荐几款吧? 哪位有经验的人给推荐一款解酒护肝的饮品? 预算1000到1300左右买一台怎么样的二手微单相机好