Foxbase中几个问题释疑

Author: 四川 成卫东 Date: 1996-12-27

        1.用disp stru或list stru命令显示库结构时,所报告的各字段宽度总和(total)比各字段宽度实际总和总多1个字节,有人怀疑是系统报告错了,实际上这多的一个字节是系统内部使用的,用于标记库中的记录是否被逻辑删除过。
        2.用disp memo显示内存变量时,系统报告的内存变量已占用的字节数(bytes used)及尚可使用的字节数(bytes available)与当前所使用的内存变量情况似乎不相符,有人怀疑是病毒作怪或系统内部出错,事实上系统的这两项报告是针对字符型内存变量而言,其它内存变量所占字节数并未包含在内。按Foxbase系统默认内存变量个数为256个,字符型内存变量可用字节数为6K字节,而其它变量可用字节数并无特别限制,它只受内存大小的限制。
        3.有时,磁盘上留下了用户根本没建过的文件名以0或1开头的长度为0的文件,有人也怀疑是病毒作怪或不知所措,实际上系统启动进入点状态时,会根据当时时间生成这样的文件,当用quit命令退出Foxbase时,系统会自动删掉这个文件,但如果用户没有用quit命令退出而直接关机或复位,则这个文件将驻留在磁盘上,这样的文件增多将影响应用程序的运行速度,故应该养成良好习惯先用quit退出后再关机,若盘上留下了这种文件则应删掉。
        4.当先用dele命令对库中记录作逻辑删除后又用pack命令作物理删除时,系统报告的是多少记录被复制,有人对此难以理解,以为系统设计上不科学。事实上,系统是这样处理的,当用dele命令作逻辑删除时,则给被逻辑删除的记录作上记号(记录号后标以*号),而用pack命令时,系统将原库文件的结构与未作删除标记的记录复制过来,并删除原库文件。不难看出系统实际上作了两件事(1)复制文件;(2)删除文件。所以系统会报告多少记录被复制而不说多少记录被删除。
        系统这样处理实际上是有优点的,我们可以很方便地恢复那个被删除的文件实际上也就达到了恢复被删记录的目的,例如:可用pctools的U命令恢复,方法是:
        a)进入pctools,击F3进入磁盘或特殊服务功能;
        b)击U__选恢复功能;
        c)选恢复文件功能;
        d)选盘符及目录;
        e)在所选目录会看到许多以@打头的文件,选择第一个字符为@后几个字符与被删记录的文件的后几个字符相同的文件;
        f)将@改为其它字符(注意:改后的文件名不能与盘中已存在的其它文件同名);
        g)击F1选自动恢复功能;
        h)按G;
        i)退出pctools。(四川   成卫东)