孔兄:
你的这个发现非常有价值,尽管我也不知道它会产生何种作用,以及会为我们今后的操作带来多大的影响。
我只是根据你的发现,结合我的理解,我推测如下:
一:^10就是CHR(10),也就是换行符,这是可以肯定的.VB中vbCrLf:Chr(13) + Chr(10) 回车符与换行符结合
vbCr:Chr(13) 回车符
vbLf:Chr(10) 换行符
对于这三个常量,大家应该不会太陌生,我们很程序中都用到.其中,在WORD中,vbCrlf=vbcr=^13=^p,也就是说都是段落标记,此处的WORD是指WORD APPLICATION自动解码代码中的VB常量时的转化,一如选择性粘贴为文本时的自动转化.
二:常规查找和复杂查找中不支持^10(单个),但支持其它形式的如^9,^13,我推测WORD是过滤掉了,这不是一个有效的单体,但必须依附于任何文本实体,也就是如,如果是Chr(13),那么它就是VBCRLF,如果是一个汉字,那么,就也依附于汉字之后,但我们看不到这个个体.换句话说,任何一个可见或者非可见的打印字符,其后面都有一个不可见的chr(10),这个可以从查找"?^10"的数量中,予以证实,那么,为什么需要这个^10换行符呢?我的猜测是与WORD的特点结合起来,在WORD对于文本处理特别是换行过程中,自动换行是随时存在的,压缩标点,字符增加页面调整等等,换行随时随地存在,但WORD究竟是如何换行的,如何把^10从不换行到换行的过程,我还不明白.
三:常规查找中,不支持"^?^10"我猜测WORD把它过滤掉了,另外在通配符查找中,如果全文仅有一个字符加一个文档结束标记,则应该有"?^10?^10"一个符合条件,但查找全部时,WORD仍会有两个被发现,甚至"?^10?^10?^10"仍然会有两个被发现,我想,WORD还是设计时没有精当所致,另外,不能查找"^10?",说明WORD中还是刻意规避这个^10的独立存在的.
四:根据你的观察,查找"?"与查找"?^10"的速度有异,甚至后者快于前者,我没有实际测试,假如属实,则我认为是符合WORD的查找惯例的,因为"?"查找过程中,要筛除"^10",而"?^10"相当于精确匹配了每个文字.
五.另外也发现该字符(^10)可以包含于文档结束标记以及段落标记中,但不包含于单元格结束标记和行结束标记中.
以上只是我的猜测,牵强附会甚至强词夺理的成分都有,希抛砖引玉.
[此贴子已经被作者于2005-11-20 10:23:41编辑过] |