delphi 如何对比两个txt文件并输出不同部分

s8yyc 2011-02-05 12:45:21
RT,举个例子,比如E盘下有两个TXT文件,文件名分别为1.txt和2.txt







1.txt内容如下:

Active Connections

Proto Local Address Foreign Address State
TCP 111.11.1.111:1975 221.181.70.12:5926 ESTABLISHED











2.txt内容如下:

Active Connections

Proto Local Address Foreign Address State
TCP 111.11.1.111:1975 221.181.70.12:5926 ESTABLISHED

TCP 111.11.1.111:1111 169.254.241.33:2222 ESTABLISHED







显然2.txt比1.txt多了一排,那么就把这一排输出到3.txt



以上都是人工操作,如何用delphi实现

高手给具体代码,uses要用到什么,也说下



PS:补充下我这txt的由来,就是在cmd中输入netstat -n的结果,然后将结果输出到txt文档中,所以文档的格式都是这样的
...全文
252 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
s8yyc 2011-02-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhuxr2003 的回复:]
你加一句procedure afile(li: string);到过程定义里。
这个是自定义的过程。建议你把pascal语法读一遍。如果你小学曾经毕业的话,应该半天就可以看完pascal语法了。
[/Quote]

好的= =
问题解决了
zhuxr2003 2011-02-06
  • 打赏
  • 举报
回复
你加一句procedure afile(li: string);到过程定义里。
这个是自定义的过程。建议你把pascal语法读一遍。如果你小学曾经毕业的话,应该半天就可以看完pascal语法了。
s8yyc 2011-02-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhuxr2003 的回复:]
var
F: Text;

procedure TForm1.FormCreate(Sender: TObject);
var
s,sl,sw: string;
begin
AssignFile(F, ExtractFilePath(ParamStr(0)) + '3.txt');
Rewrite(F);
CloseFile(F);
AssignFile……
[/Quote]


编译时出错了= =
Build
[Error] Unit1.pas(50): Undeclared identifier: 'afile'
[Error] Unit1.pas(54): Undeclared identifier: 'afile'
[Error] Unit1.pas(59): Undeclared identifier: 'li'
[Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit1.pas'
lyhoo163 2011-02-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhuxr2003 的回复:]
var
F: Text;

procedure TForm1.FormCreate(Sender: TObject);
var
s,sl,sw: string;
begin
AssignFile(F, ExtractFilePath(ParamStr(0)) + '3.txt');
Rewrite(F);
CloseFile(F);
AssignFile……
[/Quote]

支持,
zhuxr2003 2011-02-05
  • 打赏
  • 举报
回复
var
F: Text;

procedure TForm1.FormCreate(Sender: TObject);
var
s,sl,sw: string;
begin
AssignFile(F, ExtractFilePath(ParamStr(0)) + '3.txt');
Rewrite(F);
CloseFile(F);
AssignFile(F, ExtractFilePath(ParamStr(0)) + '1.txt');
Reset(F);
while not Eof(F) do begin
Readln(F, sl);
s:=s+'+'+sl+'+';
end;
CloseFile(F);
AssignFile(F, ExtractFilePath(ParamStr(0)) + '2.txt');
Reset(F);
while not Eof(F) do begin
Readln(F, sl);
if pos('+'+sl+'+',s)=0 then
sw:=sw+sl+#13#10;
end;
CloseFile(F);
afile(sw);
end;

procedure TForm1.afile(li: string);
begin
try
AssignFile(F, ExtractFilePath(ParamStr(0)) + '3.txt');
Append(F);
Writeln(F, li);
CloseFile(F);
except
end;
end;

5,392

社区成员

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

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