delphi比较两个文本文件删除相同数据

有两个文本文件A、B,里面存储了大量的字符串,举例如下:
A中有:
1
4
78
ui
……
B中有:
4
ui
asdf
ertuqwiu
……
想使用delphi编写一个小程序,首先读入两个文件,比较A、B文件中字符串,把
相同的字符串如4、ui删掉。最好还要有个dbgrid控件,显示删掉的字符串在A的什么位置,请高手帮忙,没有分数了,见谅!

第1个回答  2011-07-11
告诉你一个思路:
1、定义两个TStringList
strl1,strl2,strl3:TstringList;
2、实例化:
strl1:=Tstringlist.create;
strl2:=tstringlist.create;
strl3:=tstringlist.create;
3、读取文件
strl1.loadfromfile(filename1);
strl2.loadfromfile(fliename2)
4、通过循环来比较有没有重复的
for i=0 to strl1.count-1 do
begin
flag:=true;//标记设为真
for k=0 to strl2.count-1 do
begin
if strl1[i].tostring=strl2[k].tostring then
begin
flag:=false;//如果有相同的,把标记设为假
break;
end
if flag then//标记为真,表示没有相同的,加到了第三个字符列表中
begin
strl3.add(strl1[i].tostring);
end;
end;
end
最后,strl3中的内容,就是排除了相同的。保存一下:strl3.savetofile(filename);
记得把strl1,strl2,strl3都free掉。
第2个回答  2011-07-11
用dbgrid?这个和数据库毫无关系呀,应该用StringGrid或者ListBox就可以了。
其实最好不用界面元素,直接把删除掉的信息保存到另外一个文本文件中,每行以<TAB>分开为两列,当你想用什么来显示时,再装载也不迟,例如显示到ListBox,用ListBox.Items.LoadFromFile,显示到Memo,用Memo.Lines.LoadFromFile都很方便。

要点:针对“大量数据”,需要首先对两组数据排序,然后仿照归并排序算法,求出交集。本回答被提问者采纳
第3个回答  2011-07-10
能不能将文件发送过来 这边处理一下. 122772322
相似回答