如果使用不带 FOR 表达式的 LOCATE 命令, Visual FoxPro 定位记录指针到第一个逻辑记录上。
作者为什么要用'$&%'?就是因为pc字段不可能有这样的值。
程序的意思很明白:(1)将表按照字段pc排好顺序(怀疑楼主的Order By写错);(2)保留第一次出现在某记录的pc值,若这个记录的下一条,再下一条,...,连续的记录的pc值都是这个值的话,pc字段的值清空。
我们知道,表的第一个记录的pc字段值总是需要保留的。怎么才能保留下来而不可能被清空呢?
看程序的意思,必须要有一个内存变量保留上一个记录的pc值,以便与下一个记录的pc值进行对比。而这个内存变量就是lt。为了保证第一条记录的pc值不被清空,就是必须让lt的值不能是第一个记录的pc值。lt='xxx',lt='***',lt='@@@',lt='你好',等等,都能达到这个要求。作者写的lt='$&%',不过就是所有可以达到【lt的值不能是第一个记录的pc值】这个要求的众多值中的一个值而已,不值得考虑。