两个TStringList A和B 我想在A中去除B中的所有相同的字段,怎么去除

QQ150900 2011-08-15 05:05:53
两个TStringList A和B 我想在A中去除B中的所有相同的字段,怎么去除?

比如A中有
1
2
3
4
5

B中有

2
3
4

去掉后A只有
1
5
能否帮写个函数,要求效率足够高。
...全文
109 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainychan2009 2011-08-15
  • 打赏
  • 举报
回复
这个只能通过遍历的办法吧
Seatune 2011-08-15
  • 打赏
  • 举报
回复
for i:=0 to B.Count -1 do
begin
s := B.Strings[i];
if A.Indexof(S)>-1 then
A.Delete(K);
end;
也可以
jayqiang 2011-08-15
  • 打赏
  • 举报
回复

procedure TForm1.Button1Click(Sender: TObject);
var
A,B:TStringList;
i,k:Integer;
s :string;
begin
A := TStringList.Create;
B := TStringList.Create;
try
//Sorted属性一定要设为True
//设成True后List在搜索的时候就会以2分法去查找
//这样速度就会快点。暂时想到的就只有这一个方法。
A.Sorted := True;
B.Sorted := True;
for i:=0 to B.Count -1 do
begin
s := B.Strings[i];
if A.Find(s,k) then
A.Delete(K);
end;
finally
A.Free;
B.Free;
end;
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧