高手请进!一个很有用的问题!!急(100分)

  • 主题发起人 主题发起人 zl_cch
  • 开始时间 开始时间
Z

zl_cch

Unregistered / Unconfirmed
GUEST, unregistred user!
现有某一个word文档,如果某人修改了其中的某个部分,然后保存,那么在保存后如何获得改前的部分,在保存后的文件名体现出来,或者保存在文件中。不知道用vba如何实现??用delphi如何调用?希望大家看后能给出答案!!
 
多存几份文档吧,在文件名上用点技巧,能根据这个文件名找到前一个和后一个即可。
 
听你的意思? ?? 我想你只要实现了修改--恢复功能就可以达到你的要求了吧。
对与word 文档我没有做过这方面的程序,但关于记事本的我以前做过。我的思想是
定义一个链表堆栈,将之前修改的内容保存在堆栈里。想恢复,用堆栈也就很容易了。
我只能提个建议。 具体就自己想办法啦 :D
 
秦人你的想法很好,可是还希望能提供一些源程序参考。还请各路高手多多指教呀!!
 
cvs是什么呀??
 
cvs版本控制
 
哪位高手能帮帮小弟呀,实在是着急!!
 
我觉得可以考虑一个Word的修订功能,在将文档给某人修改之前,文档的所有修订都是提交了的,然后打开记录修订的开关(也叫痕迹保留),当某个在修改了之后,如果想回到他修改之前的状态就很容易了,只要调用Word的拒绝修订功能,然后将文件另存即可.
 
用修订功能应该可以,具体怎么用程序来控制呢?
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, comobj, word2000;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
NewTable,myRange,Word, Doc:OleVariant; //, Fields
i:integer;
Align,ShowFirst:olevariant;
begin
try
Word:=CreateOleObject('Word.Application');
except
application.MessageBox('请安装Microsoft Word 2000 或更高版本!','警告!',mb_ok+mb_iconwarning);
abort;
end;
Word.Visible:=True;
//创建空文档;
Word.Documents.Add();
//将页面改为“横向”;

Word.ActiveDocument.TrackRevisions := Not Word.ActiveDocument.TrackRevisions;

end;

end.
 
没错,RaisingRain用Word.ActiveDocument.TrackRevisions是对了,但你这样贴出来,就太不严谨了.会误导人的.
我的思路如下:

var
curDoc : WordDocument;

curDoc := Word.ActiveDocument;//或者通过其他方式得到你想要操作的文档的句柄

在你给别人编辑之前,调这句:
curDoc.AcceptAllRevisions;

在别编辑完成后,你想恢复回他编辑之前时,调这句:
curDoc.RejectAllRevisions;
 
多人接受答案了。
 
后退
顶部