delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
请教: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;

posted on 2008-10-14 16:35 delphi2007 阅读(143) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。