The Twilight Zone

Archive for 十一月, 2008

【转】珍爱生命,远离百度

by twilightxy on 十一.18, 2008, under 未分类

原文:http://www.aray.cn/archives/3325

自从百度的竞价排名被CCTV曝光之后,百度至今还没有官方做出回应,而今天百度再次让人大跌眼镜,居然明目张胆地肆意篡改搜索结果。在百度和谷歌里输入”搜索 遭央视曝光”,看看结果如何?

出来第一条的结果都一样,都是来自人民网的文章,但是标题却让人大跌眼镜,百度竟然能如此肆无忌惮的修改搜索结果的标题(甚至连百度快照里的标题都改了),此时此刻风口浪尖上,百度竟然还能干出这样的事情,实在是佩服!算百度牛逼!

P.S.现在直接在百度搜已经沉下去了,需要搜”搜索 遭央视曝光 site:mnc.people.com.cn“才能搜到

Leave a Comment :, , , , more...

[编程技术]在Delphi中调用Word生成文档

by twilightxy on 十一.13, 2008, under 未分类

前阵需要做这种东西,于是研究了一下,把个人的领悟说一说

Word支持使用VB脚本语言来做二次开发,就像Photoshop支持JavaScript,3DMAX支持MaxScript,等等。如果没有用过的同学,可以研究一下Word的”宏”功能。所谓的”宏”简单地说就是讲一系列的操作集合起来,让你按一下就完成。 用”宏”可以批量完成很多一样的工作,比如打开一堆文档并且将其中的某些文字替换成图片这样的操作。基本上只要是Word的功能都可以通过这个编程接口来调用。

比如说我们来做一个这样的宏:打开我的文档中的”信息.doc”,在文档的末尾加一个表格,然后保存为”信息副本.doc”。 首先打开一个空文档,单击”工具”-”宏”-”录制新宏”,这时Word就会弹出一个小的浮动工具条(有时候没有)开始记录你的动作,那么我们现在就按照正常步骤打开文件,插入表格,再保存。这时单击那个浮动工具条上的停止按钮,一个宏就录制好了。 要播放这个宏,可以选择工具-宏-宏来运行。这时点击工具-宏-Visual basic 编辑器,就可以看到刚才录制的代码,可能是这个样子的:

Sub Macro2()

‘ Macro2 Macro ‘ 宏在 2008-11-13 由 USER 录制 ‘

ChangeFileOpenDirectory “E:\My Documents\文档\”

Documents.Open FileName:=”编译原理.doc”, ConfirmConversions:=False, ReadOnly:= _ False, AddToRecentFiles:=False, PasswordDocument:=”", PasswordTemplate:= _ “”, Revert:=False, WritePasswordDocument:=”", WritePasswordTemplate:=”", _ Format:=wdOpenFormatAuto, XMLTransform:=”"

ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:= _ 5, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _ wdAutoFitFixed

With Selection.Tables(1)

If .Style <> “网格型” Then

.Style = “网格型”

End If

.ApplyStyleHeadingRows = True .ApplyStyleLastRow = True .ApplyStyleFirstColumn = True .ApplyStyleLastColumn = True

End

With ChangeFileOpenDirectory “E:\My Documents\” ActiveDocument.SaveAs FileName:=”编译原理.doc”, FileFormat:=wdFormatDocument, _ LockComments:=False, Password:=”", AddToRecentFiles:=True, WritePassword _ :=”", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _ SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _ False End Sub

这是记录下来的,有很多冗余,如果是我们自己编写,可以简化为如下代码:

Application.Documents.Open FileName:=”编译原理.doc”

‘这句话是在”Documents”集合中用Open方法打开一个新文档,新文档会添加到”Documents”集合中

Application.Selection.GoTo What:=wdGoToPercent, Count:=100

‘这句话是把光标定位到文档末尾

Application.ActiveDocument.Tables.Add Range:=Selection.Range, Row:=2, Column:=5

‘这句话是在添加一个表格

Application.ActiveDocument.SaveAs FileName:=”编译原理副本.doc”

‘这句就是另存为啦

在Delphi中调用Word,就要通过Word的编程接口,用VB代码来调用Word的功能。微软实现的方法是OLE对象编程。通过在内存中建立一个Word对象,来执行操作。 比如说在Delphi中打开Word,就是如下代码:

procedure StartWord;

var

FWord:OleVariant;

begin

try

FWord:=GetActiveOleObject(‘Word.Application’);

except

FWord:=CreateOleObject(‘Word.Application’);

end;

FWord.Visible:=True;

end;

这时就会打开一个Word窗口,这个时候,FWord变量,就是上面vb代码中的Application变量,代表Word本身。接下来只要把vb代码作适当的更改后抄进去就行了。 比如打开文档就是:

FWord.Documents.Open(FileName:=’编译原理.doc’);

这种方法的好处是可以使用Word在vb编辑器里面提供的所有功能,并且所有的方法,属性,对象信息都可以在Word的帮助中找到。缺点是因为是直接对Word对象操作,而不是调用Delphi提供的方法,所以在代码编辑器里面输入了”.”后不会自动提示成员函数和属性。

Leave a Comment :, , more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!