请教:A和B是两个tstringlist,如何除去B里面所有与A里面相同的项目?用下面的代码为什么会出错呢?...

请教:A和B是两个tstringlist,如何除去B里面所有与A里面相同的项目?用下面的代码为什么会出错呢? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiBase/html/delphi_20061220050104112.html
我的意思是,如果是A,B是集合的话,那么我要B-A;  
   
      for   x:=1   to   A.count   do    
          for   y:=1   to   B.count   do    
              if   a[x-1]=b[y-1]   then   b.delete(y-1);  
   
  用如下代码为什么会出错,如何修改呢?万分感谢回答的朋友!  
         
 

for   x:=1   to   A.count   do    
          for   y:=B.count-1   downto   0   do    
              if   a[x-1]=b[y-1]   then   b.delete(y-1);  
   
  因为你在B中删除一个项目后,B的COUNT值就变化了.....所以啊你应当在查询B时,要用DOWNTO来循环.

严重同意一楼。

楼上说的对,不能从头到脚,只能从脚到头这样删除才行

function   StringReplace(const   S,   OldPattern,   NewPattern:   string;   Flags:   TReplaceFlags):   string;

转载于:https://www.cnblogs.com/delphi2007/archive/2008/10/14/1310925.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值