作为一名Delphi的程序员,在VCL源码文件(pas文件,纯文本格式)中搜索关键字是家常便饭的事。在Win2000平台上,使用搜索功能中“包含文字”的选项,一下子就能把包含关键字的文件列出来。但在WinXP平台下,按照Win2000的操作方法,却怎么也没法找到。难道WinXP还不如Win2000?
没办法之下,试着用WinXP搜索txt文件中的内容,结果能正确的找到文件。接着我把一些pas文件也改名为txt文件,结果也能正确找到。试着找别的纯文本格式的文件,结果发现cs、cpp、c等文件都能正确地找到。怎就这样亏待pas文件,难道不是微软的孩子就不认人了吗?(Delphi是Broland的产品,我的机器上除了Delphi还安装MS的VS.NET,cs/cpp/c都是它支持的文件格式)。一定是pas文件缺了点什么才会受人歧视的。
打开注册表编辑器,在HKEY_CLASSES_ROOT下有很多以文件扩展名作为项名的项目,比较一下.cs/.cpp/.c/.txt/.pas这些项目下内容的异同,发现除了.pas没有PersistentHandler这个项名之外,其它几个都有。于是在.pas项目下建立一个叫PersistentHandler的项,然后复制.txt/PersistentHandler里面的值,即{5e941d80-bf96-11cd-b579-08002b30bfeb},作为.pas/PersistentHandler的值。重新启动机器,Bingo!终于可以像Win2000一样的搜索VCL源码了。
对于其它同样需要搜索内容的纯文本格式的文件也可以使用这样的设定。我想WinXP之所以这样做应该是为了加快搜索的速度,而现不再像Win2000那样什么文件都去搜索一下。