dbase Ⅲ “非法的短语/关键字”之谜 四川 胡振 1994-03-18 打印机顺序地输出标题、制表日期和表头之后,正常地打印出第一条记录的序号和姓名等字段,然后突然中止打印,且屏幕上出现了dbase Ⅲ 系统的错误信息:“非法的短语/关键字”,同时显示出错的语句为: @ PROW()+1,PCOL()+1 SAY 水费 该语句看起来是完全符合dbase Ⅲ 系统所定义的格式输出语句的句法的,然而系统却明确指出该语句出错的原因恰在于此。对此应作何解释呢? 遂进行了如下操作: 用WS的N命令打开程序文件,找到出错语句行后,键入^QD命令,果然光标并未停留于“费”字之下,而是位于其后约10列之处,由此可以确定光标之前直到“费”字的这一段“空白”即是系统所指出的“非法的短语/关键字”。用^QY命令删去“费”字之后所有内容,再于dbase Ⅲ 下运行此程序模块,得以顺利通过了。对此笔者有如下愚论: 汉化的软件如WS、dbase Ⅲ、foxbase+等皆存在“半汉字”处理的缺陷。当你不慎在一个汉字的前列处删除一个字符或在一个汉字的后列处插入一个字符时,你会发现该汉字后面的内容立即变得面目全非了:有的字变成了奇怪的符号,有的又变成了另外的字,还有的却变成了空白(尤其当该行中杂有制表符时)。可以推断出看不见的“非法的短语/关键字”正是如此产生的杰作。