DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: lixuan123
今日帖子: 23
在线用户: 9
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 lovepig (lovepig) ★☆☆☆☆ -
盒子活跃会员
2004/2/10 10:18:18
标题:
哪位仁兄写过文件比较的程序请指点。。。。 浏览:1195
加入我的收藏
楼主: 条件:一篇原稿,编辑者的名称为:E1.。。En,总编 

功能分析:第一个编辑审阅原稿,进行修改。并且保存修改过的原稿的副本,第二个编辑打开的是第一个编辑过的副本。此时程序需要对E1修改的稿子和原稿进行比较,E2打开时候直接可以看到E1的稿子与原稿之间的比较结果。依次推,En编辑打开的是En-1编辑的稿子。并且显示的是En-2和En-1的稿子之间的比较结果。
关键:怎样用程序进行比较两个文件之间的变化。如:两篇文章,一个是原稿一个是修改过的。用程序把原稿和修改过的稿子相比较,比较的结果就是修改的痕迹。
----------------------------------------------
-
作者:
男 zsredmoon (=^@^=) ★☆☆☆☆ -
盒子活跃会员
2004/2/10 10:37:13
1楼: 感觉按此在新窗口浏览图片 按此在新窗口浏览图片按此在新窗口浏览图片按此在新窗口浏览图片 能用按此在新窗口浏览图片按此在新窗口浏览图片 应比较,因为按此在新窗口浏览图片 按此在新窗口浏览图片 能修改时删除一个按此在新窗口浏览图片按此在新窗口浏览图片 一句话。
再没按此在新窗口浏览图片 确保按此在新窗口浏览图片 数相等按此在新窗口浏览图片 话,感觉按此在新窗口浏览图片 按此在新窗口浏览图片 做出这样按此在新窗口浏览图片 文件比较,很可能会得出按此在新窗口浏览图片 第一处修改按此在新窗口浏览图片 后边全部内容按此在新窗口浏览图片 同。
----------------------------------------------
按此在新窗口浏览图片
=^@^=
作者:
男 shaoyy (远洋) ★☆☆☆☆ -
盒子活跃会员
2004/2/10 11:17:30
2楼: 文件比较是很简单的事情嘛,随手写一个来,下面函数比较两两文件是否相同,如果是则返回为true:

function CompareFile(sFile1, sFile2: stirng): boolean;
var
   st1, st2: TStream; 
   c1, c2: byte;
begin
   Result := true;
   st1 := TFileStream.Create(sFile1, fmOpenReadWrite);
   st2 := TFileStream.Create(sFile2, fmOpenReadWrite);

   Result := (st1.Size = st2.Size);
   if not Result then
     Exit;
   repeat
     st1.Read(c1, 1);
     st2.Read(c2, 1);
     if c1 <> c2 then
     begin 
       Result := false;
         Exit; 
     end;
   until st1.Position = st1.Size   
end;
----------------------------------------------
www.acreport.com
作者:
男 shaoyy (远洋) ★☆☆☆☆ -
盒子活跃会员
2004/2/10 11:18:46
3楼: 修改一下:

function CompareFile(sFile1, sFile2: stirng): boolean;
var
   st1, st2: TStream; 
   c1, c2: byte;
begin
   Result := true;
   st1 := TFileStream.Create(sFile1, fmOpenReadWrite);
   st2 := TFileStream.Create(sFile2, fmOpenReadWrite);

   Result := (st1.Size = st2.Size);
   if not Result then
     Exit;
   repeat
     st1.Read(c1, 1);
     st2.Read(c2, 1);
     if c1 <> c2 then
     begin 
       Result := false;
       st1.Free;
       st2.Free;
       Exit;
     end;
   until st1.Position = st1.Size   
   st1.Free;
   st2.Free;
end;
----------------------------------------------
www.acreport.com
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行62.5毫秒 RSS