Len()和LenW()的问题----pb8
在pb8中,len和以前版本一样,都是按内存中的字节数计数的,这样一个汉字的Len()是2。而LenW()却是按所谓的字数计数的,一个汉字的LenW()就是1。这可以看作是PB的功能增强了。
但是,其他有关的字符串函数,如left,Pos,mid等,却和以前版本完全不一样,他通过LenW()而不是Len()的方式来实现,所以left(str,len("产品1") -1)的结果仍旧是"产品1",而不会得到想要的"产品"。Sybase的初衷也许是不错的,mid()确实不改取出半个汉字来。
然而,我以前的程序是在pb6下写的。现在改成pb8后,程序无法正常运行了,只因为我的Left,Pos,Mid是希望和以前版本一致:按Len()的方式来实现。但他却按LenW()来实现。。。
现在的我,只能把程序中所有的Len()改成LenW(),但这样的改动却无疑和以前的程序是不一样的,改动了那么多,我心里非常得不踏实。
我疑惑的是:既然有了LenW(),Sybase为什么不提供LeftW(),PosW(),MidW(),而让left(),Pos(),Mid()和以前的一样呢。
不知各位大虾有没有更好的改动办法?